代码提交
1 | git add -A #将未被git管理的文件加入跟踪,将本地已修改的文件提交到暂存区,或者执行git add .也一样 |
备注:push之前,commit之后,一定要记得pull一下,有冲突解决冲突,没冲突更好。注意pull动作不能放到commit之前,因为pull过来的内容可能会覆盖掉你已经修改,但是还未commit到本地仓库中内容。
分支操作
1 | git branch -a #查看本地仓库以及远程仓库上所有的分支,记得先执行下git fetch --all一下 |
提交历史
1 | git log #查看当前分支的提交历史 |
查看远程仓库的最新提交记录:
1 | # 方法一 |
备注:使用git log命令,可以看到git为每次提交生成一个长串,这个就是commitid,是git根据每次提交的内容通过SHA1计算出来的哈希串。一般来说,这个commitid很长,其实我们取前面一部分短串使用就好了。还有一点说明的是,git log执行时,不管是看本地仓库某分支还是远程仓库的提交log,都不会去远程仓库中获取提交记录,都是从本地存好的数据中解析出来。因此git log查看远程仓库的提交记录时,一般要git fetch一下。
git push使用
命令格式如下:
git push <remote> <local branch name>:<remote branch to push into> #这里的<remote>是远程仓库的缩写名称,可以使用git remote -v查看
1 | git push origin develop:master #把本地仓库的develop分支推送到远程仓库的master分支上 |
git pull使用
git pull用于从远程仓库的分支下载代码变更,并合并本地仓库的分支上。git pull其实就是git fetch和git merge。需要注意的是,git pull默认合并分支使用的是Git Merge,我们也可以通过参数修改成使用Git Rebase的方式来合并分支。我的理解,若git pull --rebase
这种形式执行,如git pull相当于是git fetch和git rebase。git pull命令格式如下:
git pull <remote> <remote branch name>:<local branch to merge into>
1 | git pull origin master:develop #将远程仓库origin的master分支拉取过来,与本地仓库的develop分支合并 |
备注:通常,我们合并分支代码时,一般使用git merge或者git rebase命令,实际上,我们也可以直接用git pull来合并不同分支,比如执行git pull origin feature-xxx表示把远程的feature-xxx分支合并到当前分支上。但记住git pull其实就用的是git merge和git rebase哦。
git fetch使用
git fetch命令,从远程仓库中下载代码变更,但是不会于本地的代码合并。若需要合并,需要再执行git merge命令来合并。
1 | git fetch origin #获取远程仓库所有分支的代码变更 |
git配置用户信息
使用git config配置个人的用户名称和电子邮件地址。这两条配置很重要,每次Git提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录。
(1)全局配置
1 | git config --global user.name "John Doe" |
如果使用了--global
选项,用户姓名及邮箱就配置在用户主目录下的~/.gitconfig
文件中,以后所有的项目都会默认使用这里配置的用户信息。
(2)局部git项目配置
1 | git config user.name "John Doe" |
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉--global
选项重新配置即可,新的设定保存在当前项目的.git/config
文件里。
git设置代理服务器
(1)设置代理
1 | git config --global http.proxy http://10.16.20.12:3128 |
(2)取消代理
1 | git config --global --unset http.proxy |
其他命令
1 | git status #查看文件的状态信息,这个命令要经常执行,会给一些有用的提示。有时执行git status时,提示Your Branch is up to date with 'origin/xxxxx',即和远程仓库是一致的,其实并不准,需要git fetch或git pull一下,才能获取到远程仓库这个分支的最新状态 |