关于git使用的几点细节理解

1.git为分布式的版本控制系统,有远程仓库和本地仓库,远程仓库和本地仓库之间建立关联关系后,可将本地仓库的更新push(相当于是内容同步)到远程仓库进行保存,远程仓库的作用相当于一个最终代码备份的地方;

2.git之所以称作分布式的版本控制系统,就是因为git本地仓库的作用,无需连接远程仓库,开发人员即可直接使用本地仓库完成代码在本地仓库中的提交和版本控制,就相当于在本地有一个完全独立的属于自己的版本控制系统。最后只需要在合适的时候,将本地仓库的相应分支推送到远程仓库进行更新同步即可;

3.创建本地仓库的主要方式:

  1).从远程仓库克隆,使用git clone 命令将远程仓库克隆到本地的一个文件夹后,即会建立一个和远程仓库有关联的本地仓库,并且默认也会在本地仓库中创建master分支,也会将本地的master分支和远程仓库的master分支进行关联(即建立追踪关系);

  2)直接从本地使用git init命令进行创建,即在一个文件夹下使用git init命令后,在该文件夹下将生成一个名为.git的隐藏文件夹(该文件夹为git的版本库),有.git文件夹的目录及其子目录中的所有文件将会被git进行跟踪管理(git能够跟踪管理的是文本文件的修改,删除),存在.git隐藏文件夹的文件夹即为本地仓库;

    本地仓库建好后,使用 git remote add origin  [email protected]:XXX/XXX.git 命令添加一个远程仓库(即和一个远程仓库建立关联关系后将代码push到远程),如果该远程仓库已经存在,则直接建立联系,如果不存在则会在远程创建一个名字为XXX.git的仓库(添加远程仓库,最后git push后就会创建);

4.git仓库的结构

  由工作区和版本库构成,如下图:

工作区:就是电脑里能看到的目录,比如上图中的除了.git文件夹之外的所有文件夹及其子目录就属于工作区,只要工作区的内容一更新,git就能跟踪到变化。工作区的内容和版本库中的内容是保持同步的。

 版本库:工作区中有一个隐藏目录.git,就是Git的版本库,版本库里存放了很多的东西,其中最重要的就是state(或者叫index)的暂存区, 还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

暂存区(stage):在commit之前暂时存放修改文件的地方。所有需要commit的文件首先都需要加入到暂存区中后才能进行commit.

将文件提交到版本库中需分两步执行:

第一步:使用git add命令将工作区中的修改了的文件添加到暂存区;

第二步:使用git commit命令将暂存区的所有修改文件提交到当前分支(注意提交是提交到某个分支),没有在处在暂存区的修改将不会被提交;

5.git是通过每次commit作为节点进行版本记录。每次commit后都会记录commit时的时间,还会生成一个commit id ,通过id可进行版本的还原。 

6.分支:是仓库中的构成单元,仓库中会存在很多分支,我们都是在某一个分支上进行工作(我们工作时都是先进入到仓库的某一个分支后,然后在该分支上执行各种git命令),分支可以理解为不同的工作区(或工作场景),每个分支都对应有自己的工作区文件内容, 切换分支后,工作区中的文件内容也会对应做改变。在某个分支下新建一个分支其实就是基于该分支的当前节点拷贝了一个新的工作区。  有了分支的概念后,我们所使用的git commit, git pull,git push 等命令都是相对于分支来讲的。

 7.git 的几个命令的理解:

 git commit                     将所有暂存区中的修改内容提交到当前分支版本库保存

    git push 远程主机名  本地分支 :远程分支                 将本地仓库中的某一个分支内容推送到一个远程分支下,如 git push origin test : dev,将本地的test分支内容推送到远程的dev分支下,test分支的内容作为dev分支下的内容。如果远程分支dev不存在,将会在远程创建一个名为dev的分支。

    git pull 远程主机名   远程分支:本地分支                   将远程的某一分支内容获取到后和本地指定的分支进行合并。如 git pull origin test:dev,获取远程的test分支和本地的dev分支进行合并,如果本地的指定的dev分支不存在,则默认会创建一个dev分支。

   上面 “本地分支 :远程分支 ”这种就是在push或pull时建立了本地分支和远程分支之间的对应关系。也就是说我们要push或pull的时候,要知道从哪里来,到哪里去。

我们在初学时要建立本地远程之间库和库对应,分支和分支对应这样的概念。使用push 或 pull 之类的命令时就感觉很清晰。

 以上这些命令操作的都是更改了的内容,并不是所有。

以上只是个人初学git时的一些浅薄的理解,是对自己学习过程的一个记录。

猜你喜欢

转载自www.cnblogs.com/hanszhao/p/9288344.html
今日推荐