Git的使用总结

来源:互联网 发布:简约官网源码 编辑:程序博客网 时间:2024/06/06 09:36

前言:

之前接触git,都是零零散散接触一下,一直想把这一块的知识总结一下,今儿正好趁着工作之余,来给大家总结一下关于git几个重要的操作;

git的作用,对于接触过的人都清楚,主要是为了方便大家今后在代码上的管理;这么说吧,以前,我们每对自己编写的软件完成一次小改进时,都

会对其进行一份复制和保留,以防止在以后的修改再也恢复不回来;那么,由此可见,之前我们最开始都是通过复制和保留来达到管理代码的作用的,

在接触了git之后,我们就可以通过git来达到复制和保留我们代码的作用,这就是git最初的一个目的,至于git的其他作用,在大家深入了解了git之后,

期待大家再进一步去深究...下面,就git分四部分来给大家讲解:


<一> 安装配置git  

安装git

Linux的ubuntu系统中,安装git的命令为:

sudo apt-get install git

例如:


windows下,安装git的方式,可以点击链接,直接下载安装客户端即可,

和安装其他windows客户端一样,在此就不予以赘述了


配置git

git提供了一个工具叫  git config, 专门用来配置及读取相应的工作环境比那辆,而正是由于这些环境变量

决定了git在各个环节的具体工作方式和行为;

第一个需要配置的是个人的用户名称和电子邮件地址;这两条配置在每次提交文件更新时,都会作为

更新内容纳入历史记录,这样管理者也才能知道是谁提交的以及提交了什么,例如:


想要查看刚才配置的信息,可以通过:

git config --list



<二>创建git仓库

有两种方式可以达到创建仓库的目的:

1>从当前目录初始化git

git init

例如:


这样我们就在TestGit目录下创建了一个空的git仓库


2>克隆一个现有的仓库

git clone [url]

例如:


后面的那个http地址,指向的是你想要克隆某一个仓库的链接地址;这样也能间接达到我们创建仓库的一个目的;


<>跟踪及提交文件到本地 

在跟踪和提交文件之前,首先,我们需要在刚创建的仓库下,有文件才行;那么,我就以刚才用git init创建的一个空仓库来给大家进行讲解;

1>新建文件

我需要在这个仓库下,模拟创建一个新文件,今后我们就通过跟踪和提交这个新建的文件来模拟我们跟踪和提交代码的情况;

vi test.txt

如下:


test.txt的文本内容如下:


2>跟踪文件

现在我们已经有了test.txt这个文本文件了,现在我们想要对这个文件进行跟踪,可以通过这个命令:

git add test.txt

如下:


然后我们可以通过

git status 

来查看我们刚才提交这个文件的状态


3>提交文件

从2>中我们可以看到,我们刚才跟踪了test.txt这个文件,这时,这个文件只是被暂存了起来,这个文件此时还没有被提交(commit)到本地,

那么,此时,我们可以通过命令

git commit -m "first commit"

来达到提交文件到本地仓库的目的

如下:


其中 -m “first commit”表示我们这次提交的一个标签,其最终会作为一个提交记录,纳入提交历史;


然后,我们再通过

git status

来查看一下我们工作空间中文件的一个情况,如下:


可以看到,此时工作目录已经是干净的了,已经没有可以被提交的文件了,因为刚才我们通过

git commit -m "first commit"

进行了一次提交


通过

git log

也可以看到我们这次提交的一个输出信息

如下:



<四>提交文件到远程仓库  

前三步,我们都是在本地仓库中进行一个跟踪和提交,

一般情况,对于一个大的软件工程,我们需要与他人进行协作,那么,对于代码的管理,

一般是借助第三方的一个代码管理平台来达到我们推送和拉取代码的目的,此时,我们就需要进行远程仓库的一个操作了,

也就是说,除了在本地进行一个跟踪和提交之外,我们还需要学会远程仓库的一个操作;


在 <四> 步中,我们需要学会的是远程仓库的一个提交

在提交远程仓库之前,我们可以添加一个远程仓库,命令如下:

git remote add [shortname] [url]:

例如:


到时,我们可以通过引用 test 来表示 https:.... 这个链接了


接下来,我们就进行提交test.txt这个文件到远程仓库的操作:

git push [remote-name] [branch-name]

其中remote-name表示我们要提交到的远程仓库的链接

branch-name表示我们本地要推送的数据所在的分支(分支的概念会在推荐大家看的git的书籍有介绍)

如下:


然后我们去这个链接看一下,发现:


test.txt这个文件真的就被提交上来了,瞬间感觉好神奇啊......


但是,在这里需要注意到的一点就是:

只有在所克隆的服务器上有写的权限(也就是说你知道你所克隆的这个仓库的持有人的账号和密码),

或者同一时刻没有其他人在推数据,这条命令才会如期完成,如果在你推送数据前,已经有其他人

推送了若干更新,那么你的推送操作就会被驳回,你必须首先把它们的更新抓取到本地,合并到自己

的项目中,然后才可以再次进行推送,至于如何推送,请看接下来的一个步骤....



<五>从远程仓库抓取文件

从远程仓库抓取文件的命令为:

git fetch [remote-name]

其中,fetch只是将远端的数据拉到本地仓库,并不会自动合并到当前的工作分支,这个合并的工作

需要自己手动进行完成;如果设置了某个分支用于跟踪某个远端仓库的分支,可以使用git pull命令

自动抓取数据下来,然后自动将远端分支合并到本地仓库的当前的分支,其使用如下:


再次提醒一下,

git fetch

这条命令只是从远程仓库中拉取数据到本地,至于合并的工作,需要我们自己去完成,当然,你也可以选择

git pull

来到达自动合并的目的;


注:

关于更详细的讲解,可以参考此书籍《Pro Git》



附加知识:

1>关于代码的托管

借助第三方代码托管平台(码云)或者通过自己搭建git服务器(关于搭建git服务器,可自行参考<pro git>)

2>关于代码管理的权限问题

可借助第三方已经提供好的现有的权限来进行人员权限的安排(如"码云"上的“管理”  ------>   "项目成员管理")

或者在自己搭建的git服务器上进行权限的配置(自己搭建的服务器上进行权限的配置,可参考<git pro>)



0 0