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 addgit 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分支上开发,就必须创建远程origindev分支到本地,于是他用这个命令创建本地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分支的链接,根据提示,设置devorigin/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-----使用小结的主要内容,如果未能解决你的问题,请参考以下文章

Git-命令小结

VSCode自定义代码片段——git命令操作一个完整流程

git使用小结整理

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

如何管理在每个 git 版本中添加私有代码片段?