1.git status 查看文件和文件夹在工作区、暂存区的状态
git diff可以查看修改内容
2.HEAD指向的版本就是当前版本
因此,Git允许我们在版本的历史之间穿梭,可使用命令git reset —hard commitid。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
· git reset —hard commit_id
· git log
· git reflog
3.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout –-
当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD
4.如果确实要从版本库中删除某文件,那就用命令git rm删掉,并且git commit。
文件删错了:git checkout — test.txt其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
5.查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:**git c**heckout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
合并分支时,加上—no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并。
git push github master(可替换成其他分支)
git push gitee master
git clone git@github.com:Stray-dog/__.git
**git clone git@gitee.com:Straydogs/__.git
6.修复bug分支:
<1>git stash 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
<2>git stash list
stash@{0}: WIP on dev: f52c633 add merge
<3>一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了。
<4>你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令
git stash apply stash@{0}
<5>git commit -m “fix bug 101”
[issue-101 4c805e2] fix bug 101
将修改复制到dev分支:
git branch
* dev
Master
$ git cherry-pick 4c805e2
总结:
(1)修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
(2)当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;
(3)在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick
(feature-vulcan分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用大写的-D参数)
7.多人协作:
创建远程gitee的dev分支到本地
git checkout -b dev gitee/dev
然后可以在dev上继续修改,然后,时不时地把dev分支push到远程
总结:
1.首先,可以试图用git push gitee
2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;(提交冲突)
3.如果合并有冲突,则解决冲突,并在本地提交;(合并冲突)
没有冲突或者解决掉冲突后,再用git push gitee
5.如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,
用命令git branch —set-upstream-to
补充:
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的。
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
8.标签
· 命令git tag
· 命令git tag -a
· 命令git tag可以查看所有标签。