Git常用操作

[TOC]

1、本地分支管理

1.1.、创建本地分支

git checkout --track origin/分支名      
git checkout -t origin/分支名              //跟踪远程分支
git checkout -b <分支名> origin/<分支名>   //不跟踪远程分支

1.2、删除本地分支

1.2.1、删除本地指定分支

git branch --delete --force <分支名>
git branch -D <分支名>

1.2.2、删除所有本地分支

git branch | xargs git branch -D

1.2.3、删除远程分支已经被删除的本地分支

git remote prune origin

1.3、修改本地分支名

git branch -m <老分支名> <新分支名>

1.6、从本地分支移除未追踪的文件

git clean -f -n     //显示将被移除的未追踪的文件,并不实际移除。
git clean -f        //移除未追踪的文件。
git clean -fd       //移除未追踪的文件及文件夹。
git clean -fX       //移除被忽略的文件。
git clean -fx       //移除被忽略和未被忽略的文件。

2、远程分支管理

2.1、创建远程分支

//将本地分支推送到远程(远程分支不存在,相当于创建远程分支)
git push -u origin <本地分支名>:<远程分支名>
git push origin <本地分支名> <远程分支名>   
// 更改本地分支与远程分支对应关系
git branch --set-upstream-to=origin/<分支名>

2.2、删除远程分支

git push origin --delete <分支名>  //git 1.7以后
git push origin :<远程分支名>

2.3、 整理远程分支

git remote prune origin --dry-run

2.4、同步远程仓库

git remote update

2.5、修改远程仓库地址

git remote set-url origin [新地址]

3、日常操作

3.1、提交之前撤销git add

git reset <文件名>
git reset [.]   //.可选

3.2、回滚

3.2.1、回滚本地代码

术语解释:
HEAD:当前分支版本顶端的别名
Index/Stage:也被称为暂存区(staging area),存储被跟踪但是还未提交的修改。
Workspace:本地工作目录。
git reset --hard HEAD~1     //当前分支HEAD=HEAD~1,同时同步更新Index,Workspace。 (相当于完全回滚一次提交)
git reset --soft HEAD~1     //当前分支HEAD=HEAD~1,Index,Workspace内容不变。(相当于执行了git add,但是未执行git commit)
git reset --mixed HEAD~1    //当前分支HEAD=HEAD~1,Index内容更新,Workspace内容不变。(相当于只修改了Workspace) 

3.2.2、公司回滚代码

git fetch                           //同步远程仓库信息到本地
git checkout <分支名>               //切换到工作分支
git pull <分支名>                   //将远程分支内容同步到本地(因已发布,远程分支为最新)
git reset —soft origin/master       //将当前分支HEAD设置为远程master(因为远程master已回滚)
git commit -am ""                   //重新提交修改。
git push                            //将修改推送到远程。

3.3、子模块submodule

3.3.1、添加子模块

git submodule add https://github.com/VundleVim/Vundle.vim.git <子模块路径>
git submodule init
git submodule update

3.3.2、删除子模块

git submodule deinit <子模块路径>
git rm <子模块路径>
//如果想彻底从本地工作目录移除子模块,执行以下命令
git rm --cached <子模块路径>
rm -rf .git/modules/<子模块路径>

3.4、暂存修改

git stash                       //暂存
git stash pop                   //恢复暂存
git stash list                  //查看暂存列表
git stash save "describe it"    //给暂存一个名字
git stash clear                 //删除一个暂存提交
git stash save --keep-index     //仅暂存unstaged文件

4、其他操作技巧

4.1、分支太多清理步骤

git remote update                       // 同步远程分支
git remote prune origin --dry-run       //整理远程已删分支
git remote prune origin                 //删除远程已删分支
git branch | xargs git branch -D        //删除本地所有分支

4.2、查看分支依赖关系日志图

git log --graph --color --decorate --oneline --all           //查看所有分支
git log --graph --color --decorate --oneline [分支名]        //查看指定分支

你可能感兴趣的:(Git常用操作)