网上的一个图:
-
git fetch
将远程库的代码在本地仓库中更新,注意:本地工作空间并不会有变化,仅仅是origin(默认)主机对应的远程库在本地更新
一般是后面接 主机名 或者 主机名 分支名,例如git fetch origin
或者git fetch origin master
git pull
相当于是 git fetch+git merge
git pull --rebase
相当于是 git fetch + git rebase -
git merge 和git rebase的差别。
https://www.cnblogs.com/kevingrace/p/5896706.html 帮助参考
git merge --no-ff -m "merge with no-ff" dev
普通合并模式,会创建一个新的commit id。
-
git仓库迁移,两个仓库之间的数据转移,保留log
git clone xxxxxx -b master
git remote add log yyyyyyyy
git fetch log
git checkout -b log log/master
git checkout master
git rebase log
git push origin master -
git pull失败
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。 -
git reset --hard HEAD^
回退到上一个版本,本地工作空间会变化
或者git reset --hard 1094a
回退到某个指定的commit节点 -
git reflog 记录每一次git命令
-
git diff HEAD <file>
可以查看工作区和版本库里面最新版本的区别 -
命令
git checkout -- readme.txt
意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。 -
git reset HEAD <file>
可以把暂存区的修改撤销掉(unstage),重新放回工作区 -
git log --graph
可以看到分支合并图 -
git stash
可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list
查看stash列表
git stash apply
恢复内容,不过恢复后,stash内容并不删除,你需要用git stash drop来删除
git stash pop
恢复的同时把stash内容也删了 -
git checkout -b dev origin/dev
创建远程origin的dev分支到本地 -
git rev-parse --short HEAD
获取最近一次提交的commit id (短id)
git rev-parse HEAD
获取最近一次提交的commit id (长id)