版本控制
本地版本控制
只对本地的文件进行版本控制
集中式
代表性的是 SVN ,代码文件存放在中央服务器
分布式
目前代表性的是 Git ,每个人都有代码副本。Git 的创始人是 Linus ,都用 Linux 了,何不再试试 Git 呢?而且,Fuck you, Nvida ! 如果不想敲命令了,还有GUI可以用。
Git文档
安装
Window:下载官网的包。或者镜像下载。
Linux:
1 2 3 4 5 6 7 8 9 10 11
| sudo apt install git-all #安装git建议的包以及依赖项,如git-doc, git-gui, gitk, gitweb等等 sudo apt install git #最小安装 # 或者编译安装 wget heeps://github.com/git/git/archive/v2.xx.x.tar.gz tar -xvf v2.xx.x.tar.gz cd git-2.xx.x make prefix=/usr/local/git install #安装git至路径 vim /etc/profile PATH=$PATH:/usr/local/git/bin export PATH #编辑环境变量
|
初始配置
git自带git config对git外观和行为配置。一共有三重配置信息。
/etc/gitconfig
文件: 包含系统上每一个用户及他们仓库的通用配置。 如果在执行 git config
时带上 --system
选项,那么它就会读写该文件中的配置变量。 (由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。)
~/.gitconfig
或 ~/.config/git/config
文件:只针对当前用户。 你可以传递 --global
选项让 Git 读写此文件,这会对你系统上所有的仓库生效。
- 当前使用仓库的 Git 目录中的
config
文件(即 .git/config
):针对该仓库。 你可以传递 --local
选项让 Git 强制读写此文件,虽然默认情况下用的就是它。(当然,你需要进入某个 Git 仓库中才能让该选项生效。)
安装完成后,首先有完成用户名和邮箱地址设置
1 2 3 4 5
| git config --global user.name "name" git config --global user.email email@example.com
git config --list #检查git的配置 git config <key> #检查某一项配置
|
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| git init #初始化git仓库 git clone /path/to/repo #克隆本地仓库 git clone username@host:/path/to/repo #克隆远端仓库 git add <filename> #提出更改,添加到暂存区 git commit -m "代码提交信息" #提交到HEAD git push oringin master #推送到远端仓库,master分支 git push --set-upstream origin main git remote add oringin <server> #链接到远程服务器 git pull #更新本地,并合并远端改动 git merge <branch> #合并分支到当前分支,手动处理冲突使用add git diff <sourc_brach> <target_branch> #查看差异 git tag <tag_name> <id> #创建标签 git log #获取提交ID git checkout -- <filename> #当前操作有误时,将HEAD内容替换到工作目录中 git branch (branchname) #创建分支 git checkout <branch> #切换分支 git fetch oringin git reset --hard oringin/master #以上为丢弃本地改动,获取新版,并将本地主分支指向新版本
|
概念
工作流
工作目录、暂存区、HEAD
分支
冲突处理
tips
1 2
| gitk #内置图形化git git config corlor.ui true #彩色输出
|