GIT常用命令
关联本地分支与远程分支
git branch --set-upstream-to=origin/<remote_branch>
追加到上一次提交
git commit --amend [-m message]
删除分支
# 本地
git branch -D <local_branch>
# 远程
git push origin --delete <remote_brach>
重命名分支
重命名本地分支
git branch -m <old_branch> <new_branch>
重命名远程分支需要先删除远程分支,再将本地分支推送到远程。
修改历史commit
假如有A(HEAD)-B-C-D-E
5个commit,需要修改C和D的commit信息
# rebase HEAD之前的5次提交
git rebase -i HEAD~5
此时会进入交互界面,将需要修改的commit之前的pick
改为edit
,然后wq保存。
pick b4ba123435 A
pick 0ae807b99c B
edit 70890e2e86 C
edit aa0778f109 D
pick 630cc16edb E
循环以下操作:修改代码或者修改commit信息,然后输入:
# 以当前代码重新覆盖本次提交
git commit --amend
# 继续rebase,如果有冲突则解决冲突
git rebase --continue
rebase结束后,会修改所有rebase的commit id,如果想要push到远程仓库需要强制push
git push origin master -f
交互式变基
git rebase -i
(交互式变基)可以让你在变基(rebase)过程中,精细地控制每个提交的修改:
- 重排序提交
- 合并提交
- 编辑提交信息
- 删除提交
用法:
# 指定范围为:当前提交的前n个提交。
git rebase -i HEAD~n
# 指定范围为:commit-id到当前的所有提交
git rebase -i <commit-id>^
# 指定范围为:(commit-id-begin到commit-id-end]之间的所有提交
git rebase -i <commit-id-begin>^..<commit-id-end>
# 变基当前分支与另一个分支之间的差异
git rebase -i <other-branch>
常用命令:
pick
:保留该提交(默认命令)。reword
:保留该提交,但是你可以修改提交信息。edit
:保留该提交,但在该提交时暂停,你可以修改代码或提交。squash
:将该提交与前一个提交合并,并且保留这两个提交的内容。Git 会提示你编辑合并后的提交信息。fixup
:将该提交与前一个提交合并,但不保留该提交的提交信息,直接使用前一个提交的信息。drop
:删除该提交。
忽略已被track的文件
.gitignore
只能作用于没有被track
的文件,也就是工作区的文件。
对于add,commit后的文件是没有作用的。
需要先把本地的缓存删除,再去提交,就可以实现忽略整个仓库文件。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
git push