Git学习日记

转载请注明出处:http://blog.csdn.net/Liuhe_5656/article/details/66969221

创建代码仓库

通过git init指令,可以将一个目录设置生Git代码仓库,代码如下:

mkdir test          (创建文件夹)
cd test             (切换至文件夹)
touch README        (新建文件)
git init            (初始化Git仓库)

输入git init命令:

这里写图片描述
代码仓库创建成功。

通过git status查看当前代码仓库状态:
这里写图片描述

git发现README文件还没有被提交到代码库中,并提示我们使用git add的方式添加版本控制。最后将add后的文件通过 git commit指令提交到代码仓库,完成一次版本的记录。

这里写图片描述

以上我们成功提交到了代码仓库,其中-m参数制定了提交时的注释。
可以通过git log指令,可以查看刚才的提交记录:

这里写图片描述

另外Git还提供了 git shortlog指令:

这里写图片描述

这条指令可以根据提交者的名字进行分组,显示每个开发者的所有提交commit记录,这适合在文档中创建日志。

追加修改

当开发者提交了一个commit,如果发现该commit有错,可以随时针对这个commit进行修改,例如在文件中笔者通过add,commit操作提交了“test1”,这是笔者想要修改这行文本为“test2”,这时候就不用重新生成一个提交,直接使用git commit –amend指令就可以:

这里写图片描述

通过git log查看提交记录:

这里写图片描述

通过git commit –amend将其改为test2:

这里写图片描述

可以通过这种方式修改commit,而不是通过新的commit老修改前一个错误的commit。

查看代码仓库状态

我们在之前的README文件中写入“Hello World”保存,并用git status查看当前代码仓库的状态:

这里写图片描述

可以发现,Git提示他检测到一个修改过的文件——“modified: README”,并提示我们使用git add/commit 进行版本管理。
我们还可以通过git diff这令查看发生变化文件的具体变化:

这里写图片描述

回退版本

在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上个版本就是HEAD^^,如果上100个版本就可以写成HEAD~100
先看当前版本提交记录:

这里写图片描述

通过git reset –hard HEAD^会退到上一个版本:

这里写图片描述

此时版本已经回退了,也可以通过对应的commit id来会退到指定版本。

如果通过git reset进行版本回退后,再通过git log就无法找到reset 之前的那个版本的commid id了,可以通过git reflog找到记录,找到回退版本的commit id:

这里写图片描述

Git的文件操作

首先执行shell的rm命令将README删除,接下来执行git status查看当前代码仓库状态:

这里写图片描述

我们发现通过rm指令可以删除一个文件,Git不仅可以监听增加文件,修改文件,还可以监听删除文件。我们同样通过执行一次git add/commit操作来完成一次新的提交。

除了从shell的删除命令Git也提供了它的删除指令——git rm:

这里写图片描述

由此可见git rm删除文件后重新提交版本时省去了重新执行git add的操作。

分支

分支的概念很重要,尤其是团队协作的时候,假设两个人都在做同一个项目,这个时候分支就保证两个人能协同合作的最大利器了。举个例子,A,B两个人都在做同一个项目,但是不同的代码模块,这个时候A新建了一个分支叫做a,B新建了一个分支叫做b,这样A,B做的所有代码改动都在个自的分支,互不影响,等两个人把各自的模块都做完了,最后将分支合并起来。

执行git init初始化git仓库之后会默认生成一个主分支master,也就是你所在的默认分支。

通过git branch a新建一个名字是a的分支,知识后分支a和master内容是一模一样的,然后通过git branch查看当前所有分支情况:

这里写图片描述

可以看到master分支前面有个*号,用来当前所在分支,我们通过git checkout a切换到a分支上:

这里写图片描述

我们也可以直接创建分支并且自动切换到新建的分支上去:

git checkout –b a
合并分支

当A同学在a分支上终于完成了工作,这个时候需要他将代码合并到主分支master上,git merge就是合并分支指令。一般需要两步,第一步切换到主分支master分支,第二部执行git merge a,意思是把a分支代码合并过来,不出意外这个时候a分支的代码就顺利的合并到了master分支来了。但在合并的时候,经常会发生Merge的冲突问题。GIt在合并分支的时候,会对文件进行自动Merge。如果没有冲突,则自动合并代码。如果有冲突,Git会把冲突的代码都显示在代码中,让开发者删掉废弃的代码,完成合并操作:

这里写图片描述

Marge和Rebase

在合并分支的时候还有一种Rebase操作,它和Merge操作所实现的基本功能基本一样,唯一区别是Rebase操作后Git的时间线会被进行合并,二Merge不会。Merge报纸了完整的Git提交记录。

删除分支

当一个临时分支使用完毕后,最合适的操作就是把这个分支删除,避免过多的分支造成混乱:

这里写图片描述

有些时候可能会删除失败,比如a分支的代码还没有合并到master,你执行git branch –d a是删除不了的,它会提示你a分支代码还未合并,但是如果你非要删除,就可以执行git branch –D a强行删除a分支。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值