浅谈git

一个项目在实际的开发过程中,需要协同合作,故项目组需要对项目进行版本控制,便于协作。今天小编就给大家介绍一款世界上最先进的的分布式版本控制系统(没有之一)——git。

安装教程

1.git install

https://git-scm.com/downloads

2.git config

3.详细git教程

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000

基础操作

1.git init

2.git add

将文件加到仓库中

3.git commit -m

将文件提交到仓库中,并添加修改记录

4.git status

实时掌握工作区状态,

5.git diff

使用前可用git diff 查看版本差异(查看修改内容)

6.git log

查看由最近到最远的提交日志;(查看历史)

加上--pretty=oneline可缩减输出信息。

版本回退

在git中,用HEAD表示当前版本即最新提交的版本,上个版本为HEAD^,上上个版本为HEAD^^,当然往上100个版本为HEAD~100.

1.git reset --hard HEAD^

将当前版本A回退到上一个版本B

2.git reset --hard

若在1中退回上个版本B后想追回当前版本A,指定A版本的commit id 的前几位就可以追回。

PS:当前git未关闭情况下可使用此方法追回

3.若电脑关闭,重新打开时无法查看git log

可采用git reflog记录每一次命令(可返回未来版本),即可查看命令历史,以便要回到未来的版本

工作区和暂存区

lgit文件夹就是一个工作区(Working Directory)

.git(隐藏目录即版本库:Repository)

git的版本库存了很多东西,其中最重要的就是stage(或者index)的暂存区,还要git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD;

前文讲到的git add指的是将文件添加到暂存区(index/stage)中, 然后通过git commit提交更改,实际上是将暂存区中的所有内容提交到当前分支(此处为master).

由于第一次创建git版本库时,git自动为我们创建了唯一一个分支master,所以现在git commit就是往master分支上提交更改。

管理修改

git的优点:

git跟踪并管理的是修改,而非文件。

即每次修改后,需要先git add(添加到暂存区),再git commit才能提交到分支中,且可以多次 add 一次性提交多个修改。(可用git diff查看版本之间的不同(未git commit前使用))

撤回修改

当文件修改后,需要撤回修改时,可用

git checkout 可将文件恢复至上一个版本的状态:

1、自修改后未add到暂存区,则撤销修改至和版本库一模一样的状态。

2、修改后add 到暂存区后,又做修改,则撤销至和暂存区一模一样的状态。

总之git checkout -- 可以让文件回到最近一次git commit 或git add的状态。(注:-- 必须有,否则将变为切换至另一分支的命令)

当修改后的文件并add到暂存区时,可用git reset HEAD 将暂存区的修改撤销掉(unstage),重新放回工作区。

1.git reset HEAD

将在暂存区的修改撤销至工作区

2.git checkout --

再通过git checkout 将工作区的修改撤销至前一个版本。

git reset

既可以退回版本,又可以将暂存区的修改退回到工作区。当使用HEAD时,表示最新版本。

删除文件

在git中,删除也是一个修改操作。

删除了文件test.txt:

1、删除

从版本库中删除,即git rm -- ,若提交到分支中,需要git commit一下,则文件就从版本库中删除了。

2、恢复

该情形是误删除了某文件,但在版本库中仍存在,所以可以使用上节git checkout -- 将误删除文件恢复到最新版本。

注:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180724G1DPOU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券