git 命令使用速查手册( 个人版)
1. 克隆远程库
git clone repository_address
通过 git clone 获取的git库只是远程库中的当前工作分支,如果想获取其它分支信息,可参考下面。
2. 查看远程库中有哪些分支
git branch -r
命令执行的前提是已经clone了远程库到本地。
3. 将远程分支关联到本地来
git checkout -b local_branch_name remote_branch_name
其中远程分支的名字可以根据上面的第2点处的命令查看。
git checkout filename 放弃上一次暂存以来最新的改动
4. 删除库中(文件系统中)加入的但还未跟踪的文件/文件夹
git clean -f 删除所有为跟踪的文件
git clean -d 删除所有未跟踪的文件夹
git clean -f filename 删除指定文件名的未跟踪的文件
5. 删除已经跟踪的文件(同时从文件系统中删除,只适合已添加到暂存区去的文件)
git rm -f filename
6. 删除已经跟踪的文件(但是不从文件系统中删除,只适合已经添到暂存区去的文件)
git rm --cached filename
7. 删除本地的分支
git branch -d branchname
8. 报 fatal: the remote end hung up unexpectedly
原因:每次提交大代码过大
解决方案:
windows:
[http]
postBuffer = 524288000
linux:
git config http.postBuffer 524288000
9. 通过gerrit 提交本地的一次修改
假设开发是在 git checkout-b dev_lulei --track origin/master 的 dev_lulei分支上
当我们在该完成所有的开发任务后,可以在该分支中git add 和git commit 一次
然后重新创建一个分支,拉最新的远程代码
git checkout -b luleiup --track origin/master
git pull
git merge --squash dev_lulei
repo onload . --br=luleiup -re ***@baidu.com,***@baidu.com
值得注意的是在 dev_lulei中可以执行多次提交,但是每次由luleiup分支向上面提交时应该保证一次提交一个功能点。
10. 有时多个分支并行开发,假如有两个分支分别为 lulei_master ,lulei_4_4_1,曾经我在lulei_master分支上提交了一个问题的解决,如下
但是现在我在 lulei_4_4_1 分支上有新的开发任务,而此时又想把改次提交应用到当前分支中,则可以
git checkout lulei_4_4_1
git cherry-pick c0cbe8525e9e9f791d169b7e68e9fceab550675d
这时如果在 lulei_4_4_1中没有冲突,那么会自动创建一次提交,该提交的 comment和拣出的那个一样
11. git diff 比较的是上一次暂存以来的变化,即暂存区的文件新的改动,只是针对已经跟踪的文件
git diff --cached 比较的是暂存区未提交的改动和上一次提交的差异,注意新的为提交的改动不参与比较
12. git commit -a 这里的-a参数,只是意思跳过对已经暂存的文件的改动后的再一次保存操作,它相当于 git add + git commit ,注意它只是对已经被暂存的文件有效
git comit --amend 如果刚刚提交后没有任何修改(是指没有对暂存区做任何修改),可以运行该命令,重新编辑提交的备注信息
git add anothingfile
git commit --amend 则可以在上一次提交中追加一个 anothingfile的文件,最终还是产生一次提交
13 . 因为本地也有个 origin/master 分支,且它不能被自定义移动,所以在merge本地的更改到远程时,要先同步远程分支
git checkout master
git fetch origin
git merge origin/master
这时,本地的master中的就拥有了远程master分支的最新的代码
14. git push origin local_branch_name:remote_branch_name
提交本地分支local_branch_name作为远程remote_branch_name分支
15. 查看本地库的远程托管地址
git remote -v
16. 查看本地分支和远程分支的对应关系
git branch -vv