git log 查看历史记录
git log --pretty=oneline 优美的查看历史记录
git reset --hard + 版本号 回退
git reflog 查看历史commit记录,在回退到过去版本的时候还能再回到之后提交的版本
git checkout 是个牛逼的命令
git checkout --readme.txt 把 readme.txt 文件在工作区的修改全部撤销
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态
另外没有--,这个命令就成为了切换分支的命令了
分支概念:
git branch 查看本地分支
git branch -a 查看本地远程所有分支
前面带有*号的代表本地正处于哪一个分支
git checkout -b dev === git branch dev + git checkout dev
新建dev分支并切换至dev
在dev分支上开发,就不影响master分支上面的内容
开发完之后,git add . + git commit -m '' + git push
如果你没有在远程建立分支的话是推不上去的,因此需要建立远程分支和链接
git push --set-upstream origin dev
切换到主分支master之后,再执行git merge dev命令后就可以合并dev分支上面的内容了
之后再通过 git branch -d dev 删除dev分支
将本地分支推送到远程特定分支
git push origin local_branch:remote_branch
这个操作,local_branch必须为你本地存在的分支,remote_branch为远程分支,如果remote_branch不存在则会自动创建分支。
类似,git push origin :remote_branch,local_branch留空的话则是删除远程remote_branch分支。
将远程特定分支内容拉下来与本地特定分支合并
git fetch origin master 获取远程分支master上面的内容
git merge origin/master 将远程的master分支上面的内容合并到此时开发的分支上
将本地分支和远程分支关联
最近使用git pull的时候多次碰见下面的情况:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> release
其实,输出的提示信息说的还是比较明白的。
使用git在本地新建一个分支后,需要做远程分支关联。如果没有关联,git会在下面的操作中提示你显示的添加关联。
关联目的是在执行git pull, git push操作时就不需要指定对应的远程分支,你只要没有显示指定,git pull的时候,就会提示你。
解决方法就是按照提示添加一下呗:
git branch --set-upstream-to=origin/remote_branch your_branch
其中,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。