git 日常命令
#git stash命令 git stash pop #取回暂存的内容,自动检测合并 git stash list #查看"暂存区"的所有记录 git stash clear #清空"暂存区" git stash pop #取回暂存区第一个记录 git stash apply 0 #取回"暂存区"指定的记录 编号0 git stash drop 0 #删除"暂存区"指定记录 git reflog #查看包括回滚的历史记录 #回滚到指定版本. 指定版本标识 git reset --hard 9bbb0ef17234d40c941fec0f0408d994b52a5060 #git branch 命令 git branch #查看分支 git branch dev1 #创建新分支dev1 即拷贝当前所有代码到新分支 git checkout dev1 #进入dev1分支 git checkout master #回到主分支 git branch bug #创建新分支bug, 然后修复bug完毕. git checkout master #切回master git merge bug #把bug分支合并过来. git branch -d bug #再删除分支 git checkout dev1 #回到dev1分支,继续开发新功能. #本地仓库拉取远程仓库(已有本地仓库) git init git config --local user.name "X "XXX" git config --local user.email "XX "l "XXX@yhglobal.com" git remote add origin http://user:passwd@xxx git pull origin master git fetch git checkout -b 11.11 origin/11.11 #拉取远程分支到本地(本地没有此分支) #本地仓库拉取远程仓库(无本地仓库) git clone http:user:pwd@xxx #拉取远程分支(本地没有此分支) git checkout -b 本地分支名 origin/远程分支名 #推送本地分支到远程库(远程仓库没有此分支) git push --set-upstream origin 本地分支名
#修改本地关联的远程仓库
方法一:
git remote rm origin
git remote add origin git@github.com:xxx/xxx.git
方法二:
git remote origin set-url --push <name><newurl>
方法三:
直接修改.git/config文件
#相关远程命令
查看远程仓库
git remote -v
删除远程仓库
git remote rm <name>
#git fetch命令
$ git fetch origin master //从远程的origin仓库的master分支下载代码到本地的origin master
$ git log -p master origin/master //比较本地的仓库和远程的对比
$ git merge master //合并拉取下来的分支和本地分支
$ git fetch origin master:tmp //拉取远程分支到本地分支(新建)
$ git diff tmp //比较本地分支和拉取下来的分支不同
$ git merge tmp //合并分支
$ git branch -d tmp //删除临时拉取下来的tmp分支
# revert和reset区别
git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit看似达到的效果是一样的,其实完全不同.
第一:上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突(或git push -f强制推送).但是revert 并不会.
第二:如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
第三:reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.