git工作方式简介

来源:互联网 发布:蒙古灭宋 知乎 编辑:程序博客网 时间:2024/05/16 22:43

git工作方式简介

强烈推荐廖雪峰老师的git教程。

  • What is git
  • How it works
  • Sth. intresting

一 What is git

git是一个分布式版本管理工具。

版本管理

  1. 记忆每次提交的修改。
  2. 在不同的修改之间自由切换。
  3. 解决协作冲突。

为了方便描述,本文把每次提交的修改称为一个commit版本

分布式

git有本地代码仓库,因此可以本地记录代码修改情况,不至于因远程仓库有问题而无法管理代码的修改情况。

github 想必大家是先了解到有个github,才想去了解的git。github可以设置为git的远程仓库,这样你就可以把自己的修改放到远程仓库,供大家访问。同时,你也可以访问别人对代码的修改。当然你也可以配置自己的远程仓库。

二 How it works

从做中学。

首先下载一个git并安装。

2.1 注册用户

$ git config --global user.name "Your Name"$ git config --global user.email you@example.com

当然只需要注册一次。git当然也不能随便让人提交代码到你的仓库,那多危险。

2.2 git init 初始化本地仓库

$ mkdir gitIntro$ cd gitIntro$ git init

此时在gitIntro目录下有一个.git文件,说明该目录是gitIntro项目的本地代码仓库。.git目录中的东西是本地仓库的管理文件,请勿擅自修改,否则会导致版本无法正常使用
.git文件

2.3 有了本地仓库,那么我们在仓库当中放入一个readme文件

$ vi readme

写入git introduce,简介一下我们这个项目的作用。

2.4 git add [file] 添加文件到临时存储区

git status

虽然我们在上一步编辑了readme并放到了gitIntro目录。但是由git status可以看出,git发现readme是untracked files,即不受版本管理的文件。因为此时.git中还没有记录这个文件。就像你把一个东西放到了仓库,而仓库没有记录,那你再去找的时候,仓库管理员会不知道一样。那么我们就需要用到git add和git commit。

$ git add readme

git add

此时可以看到Changes to be committd,括号当中还让用git rm –cached去清空缓存。由此可以知道git add操作是把readme加入到了缓存当中,并没有这正提交到仓库。类似于现在有很东西要放入仓库,你应该会拿个小本本去快速的记录这些内容,随后一起放入仓库。

如果你真的不想readme提交本地仓库管理,那么可以执行git rm –cached readme清空缓存,如果想把当前目录下所有git add的内容都清空,则采用git rm –cached -r .

2.5 git commit提交

$ git commit -m "提交readme"

git commit

提交到仓库之后,git status可以看到working directory clean,即工作空间已经完全在git的掌控之下了。

小结一下:至此我们可以发现,把内容放入仓库分三步走:第一步,把内容放入仓库目录下面;第二步,git add file把文件放入临时存储区,当然你可以连续执行add,添加不同的文件;第三步,git commit -m’message’,将内容修改提交到仓库。

2.6 git reset 回退

$ cat readme> git introduce$ echo "abcd" >> readme$ cat readme> git introduce> abcd$ git add readme$ git commit -m"第二次提交readme"$ git log> commit b62d013eb596f87a1494c4bbd8e330462f69ffe0>>    第二次提交readme>> commit 73338e1d4e5dbe35f2969e27fd1d7d37054f48ba>>    提交readme>    $ git reset --hard 73338eld4$ cat readme> git introduce

git log显示出我们提交了两次,并且每一次都有版本号。我们找到提交readme的版本号,采用git reset –hard [版本号]即可完成回退。
回退了又后悔了呢?请用的时候自行百度,也是一条命令搞定哦。

三 Sth. intrestring

此时大家可能也发现了,这只是我自己开发能用,跟别人协作怎么办?通常情况下我们会配置一个公共主机当做公共代码仓库,这样来共享和同步大家对代码的修改。本地代码修改完之后,先提交到本地仓库,再提交到远程仓库。github就具有公共代码仓库的能力。关于github如何配置以及如何和git配合进行pull和push等内容,小伙伴们可以自己踩踩坑。

原创粉丝点击