git流程图(图片来自网络)
工作区
a、删除未跟踪的文件 untracked files
1 2 3 4 5 6 7 8 9
| git clean -nfd
git clean -fd
git clean -xfd
|
b、删除已跟踪的文件
暂存区
a、取消暂存区已缓存的内容,修改前内容还在工作区
b、撤销丢弃所有文件修改,内容不在工作区
本地仓库
a、回退暂存区相关文件到上一个版本,内容还在工作区
1 2 3
| git reset HEAD^ git reset HEAD^ hello.php git reset commitID hello.php
|
b、回退暂存区相关文件到上一个版本,内容不在工作区
c、放弃本地修改,用远程dev-test分支覆盖本地分支
1 2 3
| git fetch --all git reset --hard origin/dev-test git pull
|
远程仓库
git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进
a、撤销revert
1 2 3
| git revert commitID (撤销指定的版本) git push
|
b、回退reset
1 2 3 4
|
git reset commitID (HEAD指向版本) git push -f
|
分支
创建新的分支,且关联远程
1
| git checkout -b branch_name origin/branch_name
|
本地没有分支,远程有
1 2
| git checkout --track origin/branch_name
|
本地有分支,远程没有
1
| git push --set-upstream origin branch_name
|
删除本地分支
1
| git branch -d branch_name
|
删除远程分支
1 2
| git branch -r -d origin/branch-name git push origin :branch-name
|
dev分支合并到prod分支
1 2 3 4 5 6 7 8 9 10 11
| git checkout prod
git pull origin prod
git merge dev
git status
|
1、 rebase 和 merge 的区别