本机装了双系统centos6.5,在centos下装了一套开发环境,发现linux下的git图形客户端好少,能用的更少。本想装一下gitg 的,发现gitg要求的依赖包好新,centos基本上不能满足,如果非要用的话,要手动更新好多包,太麻烦。在centos下,推荐使用 smartgit。 一,下载linux版smartgit 下载地址:http://www.syntevo.com/smartgithg/download 二,安装git # yum install…
Linux:命令行git简单使用, git指令, 命令行操作git
开始正文
Git简介
这篇文章不介绍github,介绍git命令行,但是有必要对git和github是什么进行一个说明。你可能听说过github,据说github是世界上最大的同性社交网站。当然是开玩笑的。简单的说,github是一个开放源代码保存的地方,github也是合作项目开发的首选地。
那么git呢,git是一个仓库,一个你用来保存代码的地方。
所以,当我在github上注册了帐号之后,我可以将我的代码上传到git上进行保存,也可以大家合用一个仓库来合作开发。
当然,git本身是开放的,别人可以看到你的源代码,如果是想变成不开放的,那么你就需要像github付费了。你可以去coding看一看,coding提供了免费的git仓库。我们项目的开发都是用的coding。
Git命令行
Github官网上提供了图形界面。
图形界面的使用比较简单,具体使用迪哥曾经写过一篇关于mac下sourcetree的使用。sourceTree git管理协同使用方法,mac下的git管理工具。可以对照看一下。在这里不对图形化界面进行详细介绍。
因为很多时候还是需要git的命令行,下面将进行简单的git命令行使用。 我的环境是ubuntu14.04。
首先我介绍我们在使用sourcetree时的上传代码流程。命令行是相同的。
上传代码到合并代码到拉代码的主要过程是这样的。
add->commit->fetch->pull->push
换成中文
添加代码->提交代码->抓取代码->拉取代码->推送代码
添加代码对应git add
提交代码对应git commit
抓取代码对应git fetch
拉取代码对应git pull
推送代码对应git push
下面将逐步介绍这些命令。
安装git
Ubuntu下安装git的命令行是sudo apt-get install git,不多做解释。
git clone
git clone是将github上的git仓库下载到本地。 每一个github都要相应的git地址。如图

命令很简单,在终端下到你想要的目录,然后git clone +url +目录就可以了。git clone后面是可以加参数的,但是我在使用过程中没有用过。

我寒假clone vundle时用的命令,后面那一串是git clone的位置。 如果已经cd到你要clone的位置,直接git clone不用后面目录的参数就行了。
Git帮助
命令 git help


可以看到所有的git命令。git help也是可以加参数的。具体查阅帮助或者文档了。
git上传代码

就是主要这三条命令。我会详细说明这三条命令行的作用。
首先第一条,git add .
git add后面可以直接加上目录,或者文件名。“.”在这里的意思就是当前目录下所有文件。
举个例子。

Git就会把我judi0713.github.com里所有文件全部添加了。
第二个,commit -a -m “messages” 提交
首先说明参数的意思。
-a的意思就是提交所有改变的文件。

-m后面还需要加参数,就是提交信息。
在commit时候必须要commit的信息。所以-m的参数是必须的。
下面我开始具体说明。
如果直接调用git commit。会进入

如果你不小心进入这里,先输入一段信息即-m(你提交的内容)然后按F3(其实就是ctrl+o writeout)意思就是确认文件,如果不事先填写后面会无法commit。

按下F3。

然后回车。回到之前的提交界面。Ctrl+x exit就可以了。 然后你修改的文件会出现

大功告成。
一开始的时候我只用了git commit –m +msg
但是有时候会出现文件没有全部提交的问题。具体我还不知道为什么,有可能是我一开add出现问题了。
我选择的是git commit –a –m +msg。即一次性提交所有代码。这样就不用进入那个全是英文的界面了。
可以看一下效果图。

第三个git push –u origin master
不清楚-u含义,查了很多都加上了-u,具体我就不说明了。
origin是远程主机。master是git的主分支。
这样就可以将本地修改的代码全部上传到远程主机了。
上传的时候需要输入你的github用户名和密码。

到此为止是最主要的git命令行使用了。
因为我使用的是jekyll是独立项目所以我没有拉代码这个步骤。
fetch和pull的区别在于fetch是看有没有别人远程推送的代码,并不进行合并。 pull的话直接就合并了,当然也可以省去fetch的步骤,不建议省去。 在pull代码到本地的时候会有本地的代码冲突。Git很人性化的会将代码进行比对。你需要看别人是不是修改了你的代码,然后进行对别人代码的删除或者自己代码的删除。然后重新commit。 其实这是很值得写的一个东西,具体等我进行命令行的git开发的时候再详细说明。
fetch的命令就是git fetch pull的命令就是git pull 因为我个人只用过图形化界面的git没有尝试过命令行没法现身说法。如果以后我使用命令行的话会具体再说明的。
下面再介绍一个很有意思的git命令行。
git status
查看git现在的状态。 比我现在已经add过了。我调用git status。

我在commit一下查看git status。

可以查看此时我的git状态。感觉还是很不错的。
其实我主要介绍的还是简单的git命令行使用,是我在搭建jekyll的时候所用到的。 还有很多我都没有介绍,比如revert,回滚。可以回到之前代码的状态。需要添加状态的id。
还有分支,这个功能我真的没有很好的研究,有时间还是要把git研究一下。
还有就是git rm删除文件等等。
我会在使用之后再写一篇博客对我没介绍的git命令进行说明。
实在是觉得git很好用,免费空间。而且作为技术人,学会上github真的很重要。
git本地命令
git 放弃本地修改 强制更新
git fetch --all git reset --hard origin/master
git fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEAD指向刚刚下载的最新的版本
本文:Linux:命令行git简单使用, git指令, 命令行操作git