git心得
2020-02-12 18:59 Spiderman25 阅读(84) 评论(0) 收藏 举报https://www.jianshu.com/p/3bc2fc01492b
1、git init//创建版本
2、git add <file>//从工作区添加到暂存区
3、git commit -m "remark"//从暂存区添加到仓库
4、git diff <file>//工作区与暂存区文件比较
5、git diff --cached <file>//暂存区文件与仓库文件比较
6、git diff HEAD -- <file>//工作区文件与仓库文件比较
7、git checkout -- <file>//使工作区文件与暂存区文件一致
8、git reset HEAD <file>//使暂存区文件与仓库文件一致
9、git reset –-hard HEAD //把工作区、暂存区所有文件与仓库最新版本文件一致
git status//查看状态
git rm <file>//删除文件后,提交到暂存区
git log <file>//查看修改记录,无较晚的记录
git reflog <file>//查看修改记录,包含回退的记录
git checkout <hash> file//工作区和暂存区恢复到仓库的哪个记录,此时工作区和暂存区都一样,只需要提交就可以
git remote add origin git@github.com:michaelliao/learngit.git//关联
git push -u origin master//第一次推
git push origin master//后面推
git clone git@github.com:michaelliao/gitskills.git//克隆
git branch <分支名称>//创建分支
git checkout <分支名称>//切换分支
git switch <分支名称>//切换分支
git checkout -b <分支名称>//创建分支并切换
git switch -c <分支名称>//创建分支并切换
git branch//查看当前分支
git merge <分支名称>//合并分支
git branch -d <分支名称>//删除分支
git log --graph//查看分支合并图
git merge --no-ff -m "merge with no-ff" <分支名称>//禁用Fast forward模式合并,即会产生一条合并记录
git stash//保存工作空间,转换分支前
git stash list//列出所有的stash
git stash apply//应用栈堆第一个stash,并不删除
git stash drop//删除应用栈堆第一个stash
git stash pop//应用栈堆第一个stash,并删除
git stash apply <stashid>//应用某个id的stash
git branch -D <分支名称>//丢弃一个没有被合并过的分支
git remote//要查看远程库的信息
git remote -v//要查看更详细的远程库的信息
git remote add origin git@github.com:michaelliao/learngit.git//关联,即把本地仓库推到远程空仓库
git push -u origin <分支名称>//由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,实验得出如果一开始不加-u,pull是不能抓到的,要用git branch --set-upstream-to=origin/<分支名称>才可以,而push要git push origin <分支名称>才行,如果加了直接git push就可以了。
git clone git@github.com:michaelliao/gitskills.git//克隆,即把远程仓库拉至本地。当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。默认只克隆master。
git push origin <分支名称>//推送分支至远程,后面推(可能会冲突,先pull再commit提交,无需add)
git fetch origin//是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
git fetch origin <分支名称>//是将远程主机的某分支最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
git log -p FETCH_HEAD//可查看拉取的信息,可查看冲突
git merge FETCH_HEAD//可合并拉取的信息
git checkout -b <分支名称> origin/<分支名称>//拉前要git fetch origin更新分支到本地,要不然无法拉。拉取分支并切换,但本地与远程分支没有关联
git branch --set-upstream-to=origin/<分支名称> <分支名称>//关联分支
git pull <远程主机名> <远程分支名>:<本地分支名>//可缩写成git pull,则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。(先用上述命令关联再pull,否则不知道从哪里拉)
关于合并:
分支:会把两个分支的提交记录按时间合并(git merge <分支名称>,如有冲突解决后add commit)
无冲突:产生一条合并记录
有冲突:不会产生一条合并记录,解决冲突后add commit后再提交,产生一条提交记录
拉远程:会把本地远程提交记录按时间合并(git pull,如有冲突解决后commit)
无冲突:不会产生一条合并记录
有冲突:不会产生一条合并记录,解决冲突后commit后再提交(不用add),产生一条提交记录
如果与远程有关联,push和pull都可以简化,否则要加上远程分支。
git tag <标签名称>//在当前提交打标签
git tag//查看所有标签
git tag <标签名称> <hash>//为某个提交打标签
git show <标签名称>//查看标签信息
git tag -a <标签名称> -m "version 0.1 released" <hash>//带说明的标签
git tag -d <标签名称>//删除标签
git push origin <标签名称>//把标签推至远程
git push origin --tags//把所有标签推至远程
git push origin :refs/tags/<标签名称>//git tag -d删除本地标答后用这个命令删除远程的
在Merge branch 'dev'后创建分支vb,随后在
master分支提交评论为master1的修改
vb分支提交评论为vb1的修改
master分支提交评论为master2的修改
vb分支提交评论为vb2的修改
最后在master分支合并vb分支
注:所有的记录表示一条线,如果有分支指针刚好在这条线上会显示出来,所以显示出来的绿色都是与其他分支合并后但没有在其他分支提交的其他分支。例如在dev提交后,那个绿色就会消失掉。并且创建分支时会继承之前的记录。
有冲突时没看到合并时记录,后面的记录是解决冲突后出现的

浙公网安备 33010602011771号