Git-----使用小结
Posted zxdkj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git-----使用小结相关的知识,希望对你有一定的参考价值。
一.简单的创建库
1.ubuntu环境--下载git:sudo apt-get install git
mkdir ~/watermelon
git init vim readme.txt git add readme.txt git commit -m ‘create gitfile‘
ps:小命令--
git status 查看工作区的状态。
git diff 可以查看修改的内容。 ----git diff + <文件名>
2.git版本回退
命令:git reset --hard commit_id
git log 查看提交历史
git reflog 查看操作历史
git diff HEAD -- readme.txt
可以查看工作区和版本库的区别。
2.1 对于一个文件只提交了(add),没有commit。当添加后对文件做了修改。如何更新最后一次内容?
方法:先git add 再git commit。把最后一次的文件从新添加后再提交。
3.git撤销修改
3.1 当发现一个文件内容有误,只是在工作区。想撤回的方法:
git checkout -- readme.txt
3.2 当发现一个文件内容有误,已经在暂存区。撤回的方法:
git reset HEAD readme.txt 当reset命令回退版本。HEAD表示最新版本。
3.3 当发现一个文件内容有误,已经在版本库了。撤回的方法:同3.2,回退到工作区的版本即可。根据commit_id来修改。
4.git的删除
git rm readme.txt
git commit -m "remove test.txt"
如果删错了,那就回退。
git checkout -- text.txt
ps: 上述命令只针对没有用git rm和git commit 之后的文件。
如果用了git rm 。需要先用git reset HEAD <file> 再 git checkout -- text.txt
如果你是git rm 并且 commit 那么就没有办法回撤了。
5.远程仓库
5.1 ssh-keygen -t rsa -C "[email protected]
" 利用该命令把生成的公钥放到远程仓库上。
在远程仓库上也建一个仓库(仓库名于本地仓库名一致)。将本地仓库与远端仓库相关联。
git remote add origin [email protected]:WdGarden/waterwelon.git 远程库的名字就是origin
把本地所有的内容全部推送到远程库上。
git push -u origin master
用git push命令实际上是把当前分支的master到远端。以后直接用命令:git push origin master
5.2 git clone [email protected]:WdGarden/watermelon.git
6.创建和合并分支
当创建一个新分支时。再把HEAD指向dev时。
当在dev分支上做了一个新的提交时。
最后在dev上的工作完成了。合并到master上。最后也可以删除dev分支。
git checkout -b dev 创建分支并切换到dev的分支上。
当在dev分支上修改了内容并且提交了工作,git checkout master 切回到master分支上。那么文件还是没有变化的文件。因为那个提交在dev的分支上。
合并分支 git merge dev
删除分支 git branch -d dev
ps :常见的问题:
6.1当分别在两个分支上对同一个文件做了修改,并同时做了提交。如下图所示。
这是时无法合并的。可以修改内容后在add和commit。如下图所示。
疑问:此处是在主分支上修改的文件。那么在dev分支上修改的内容是否有变化了?没有变化是否需要merge一次?
另一种合并分支的方式:
git merge --no-ff -m "merge with no-ff" dev
BUG分支:
git stash的功能:把当前的工作现场保存起来。
Feature分支:
当新建一个分支,同时做了提交的内容。然后想删除此分支。
git branch -d feature-vulcan
Git友情提醒,feature-vulcan
分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用大写的-D
参数。
7. 多人协作:
当你从远程仓库克隆时,实际上Git自动把本地的master
分支和远程的master
分支对应起来了,并且,远程仓库的默认名称是origin
。
用git remote -v
显示更详细的信息
推送分支:git push origin master
当另外一个人clone这个库,你的小伙伴只能看到本地的master
分支。
你的小伙伴要在dev
分支上开发,就必须创建远程origin
的dev
分支到本地,于是他用这个命令创建本地dev
分支:
git checkout -b dev origin/dev
他就可以在dev
上继续修改,然后,时不时地把dev
分支push
到远程:
git add a.txt
git commit -m ‘a.txt‘
git push origin dev
你的小伙伴已经向origin/dev
分支推送了他的提交,而碰巧你也对同样的文件作了修改,并试图推送:
git add b.txt
git commit -m ‘b.txt‘
git push origin dev
送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull
把最新的提交从origin/dev
抓下来,然后,在本地合并,解决冲突,再推送:
git pull
git pull
也失败了,原因是没有指定本地dev
分支与远程origin/dev
分支的链接,根据提示,设置dev
和origin/dev
的链接:
git branch --set-upstream-to=origin/dev dev
git pull
这回git pull
成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再push:
git commit -m "fix env conflict"
git push origin dev
以上是关于Git-----使用小结的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程