Git入门教程:用Git完成基本的项目提交处理工作

作者:邓昊晴

原文:https://www.denghaoqing.com/?p=173

转载请注明

前言


git是当今应用广泛的一个版本管理工具,相对于以前人们常用的SVN工具,Git工具具有很多的有点。其分布式本地储存代码仓库,让用户随时随地,即使在没有网络的情况下也可以对项目提交修改,开发者在本地拥有完整的项目修改历史。

代码、文档的版本管理在当今团队协作中日益重要,完整的项目修改日志,可撤回的版本管理能够为团队协作提供极大的方便。因此掌握Git工具的使用,是十分必要的。本文将讲述使用Git本地提交代码,提交到远程仓库,以及撤回修改的方法。

安装Git工具

在Git官网你可以下载适用于你的操作系统的Git工具:点击前往

Mac 与 Linux

当然,在Mac在Linux下你可以用更方便的方式来安装git。

在MacOS中,你可以在终端中直接敲入git,如果系统没有,就会提示你去安装。

在Ubuntu中,你可以在终端输入sudo apt-get install git

在CentOS中,你可以输入yum install git来进行安装。

创建一个Git仓库

在你的项目目录下,敲击

git init

git就会在你当前目录初始化一个代码仓库了。这个仓库起始就是你当前目录下的.git文件夹

添加要提交的文件

在每次提交前,你需要制定要提交的文件,git在commit时会按照这一提交文件列表索引内的内容进行提交。这么做可以让你将你所做的更改分成两个commit来提交。

添加某一个文件

要为某一个文件添加索引,比如你想讲test.txt加入索引,你只需要输入:

git add test.txt

将当前目录下所有文件加入索引

这个是最常用的,你只需要输入:

git add .

就可以把当前目录下的所有文件加入到Git的索引当中

提交更改

在你对索引内的某些文件作出了修改以后,如果你想将这些修改更新到Git仓库内,那么你就需要提交更改了,否则,你的修改是不被保存的,未提交更改的项目,常被叫做不干净的工作区,不干净的工作区的未提交更改,在你将本地仓库同步到远程仓库或者在你切换分支刷新工作区的时候未提交的数据都会丢失。

提交更改的方法很简单,只需要输入:

git commit -m "message"

命令引号内的文字是对你做的变更的概述。

设置远程仓库

当你在本地完成更改后,在很多情况下你需要将你的更改提交到网络上的代码库,也就是远程仓库了,而在此之前你需要设定好远程仓库。设置的命令也很简单:

git remote add origin git@github.com:xxxxxxx/xxx.git

而其中的git@github.com:xxxxxxx/xxx.git就是你项目所在的地址

将本地更改提交到远程仓库中

生成ssh-key

若你想把代码提交到github,在此之前,你需要生成本机的ssh key作为权限校验的凭据

ssh-keygen -t rsa -C "你注册的邮箱"

然后在~/.ssh/id_rsa.pub下你就可以看到一串东西,那就是你的key了

你可以用以下方式查看:

cat ~/.ssh/id_rsa.pub
text ~/.ssh/id_rsa.pub

如上图所示,然后在github的sshkey设置中,将上述文件的内容复制到github的相关设置界面中(Settings— SSH &GPG Keys)。

提交代码

在之前的git remote add origin中,我们设置了origin这个远程仓库源,我们可以从远程仓库中提交和获取更改。

git push origin master

你也可以加入-u参数去关联分支

git push -u origin master

至此,你的更改已经可以提交上去服务器了。

回退更改

当你做了错误的提交,或者是提交更改后后悔时,回退是git给你的“后悔药”,这种后悔药有两种,一种是“revert”,一种是“reset”,我们来对此进行简述。

Revert

这一操作是以commit形式撤回更改:

git revert HEAD~1

这是撤销上一次更改。更为常用的是下面这种:

git revert 6a69442a250b28ca02a4c5403563fec93e337688

这句命令是撤回指定commit ID的更改。

在撤销后,其在修改记录中记录如下:

Revert “initial commit of firmware source”
This reverts commit 29df332.

Reset

这一操作是直接从commit记录中清除这一commit:

git reset --soft HEAD~1
git reset --hard HEAD~1

这样,其提交记录就会直接被删除,但是–soft参数的话,你撤回的更改会遗留在待提交暂存区中,而–hard的话则不会保留。

 

 


若您觉得这些内容对您有帮助,希望您能为我提供捐助,以便让我们更好地运营下去。

Bitcoins donations ar accepted

3MNvM1gW2sLPm3HTcM2Zp4GdaHDHeFkjMh

发表评论

电子邮件地址不会被公开。 必填项已用*标注