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地址。如图

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

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

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

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

Git帮助

命令 git help

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

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

git上传代码

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

就是主要这三条命令。我会详细说明这三条命令行的作用。

首先第一条,git add .

git add后面可以直接加上目录,或者文件名。“.”在这里的意思就是当前目录下所有文件。

举个例子。

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

Git就会把我judi0713.github.com里所有文件全部添加了。

第二个,commit -a -m “messages” 提交

首先说明参数的意思。

git-easyuse-7

-a的意思就是提交所有改变的文件。

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

-m后面还需要加参数,就是提交信息。

在commit时候必须要commit的信息。所以-m的参数是必须的。

下面我开始具体说明。

如果直接调用git commit。会进入

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

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

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

按下F3。

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

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

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

大功告成。

一开始的时候我只用了git commit –m +msg

但是有时候会出现文件没有全部提交的问题。具体我还不知道为什么,有可能是我一开add出现问题了。

我选择的是git commit –a –m +msg。即一次性提交所有代码。这样就不用进入那个全是英文的界面了。

可以看一下效果图。

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

第三个git push –u origin master

git-easyuse-14

不清楚-u含义,查了很多都加上了-u,具体我就不说明了。

origin是远程主机。master是git的主分支。

这样就可以将本地修改的代码全部上传到远程主机了。

上传的时候需要输入你的github用户名和密码。

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

到此为止是最主要的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。

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

我在commit一下查看git status。

Linux:命令行git简单使用, git指令, 命令行操作git
Linux:命令行git简单使用, git指令, 命令行操作git

可以查看此时我的git状态。感觉还是很不错的。


其实我主要介绍的还是简单的git命令行使用,是我在搭建jekyll的时候所用到的。 还有很多我都没有介绍,比如revert,回滚。可以回到之前代码的状态。需要添加状态的id。

还有分支,这个功能我真的没有很好的研究,有时间还是要把git研究一下。

还有就是git rm删除文件等等。

我会在使用之后再写一篇博客对我没介绍的git命令进行说明。

实在是觉得git很好用,免费空间。而且作为技术人,学会上github真的很重要。


git本地命令

mkdir gittest #创建一个文件夹,后面将以该文件夹作为git本地仓库
cd gittest #进人到本地仓库
git init  #初始化git仓库
git config –global user.email “github申请邮箱”#设置仓库所有者的邮箱
git config –global user.name “github用户名”#设置仓库所有者的用户名
vim addAFile #添加一个测试文件
git add . #将当前仓库下所有新增加的文件添加到git仓库,即让git知道你要git管理哪些文件
git status #查看当前仓库中文件的状态,增加,修改,删除等
git commit -a #将本地对文件的修改提交到git仓库,即让仓库登记此次修改的内容
#将来可以对这些commit的内容进行查看


git 放弃本地修改 强制更新

git fetch --all
git reset --hard origin/master

git fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEAD指向刚刚下载的最新的版本

 

本文:Linux:命令行git简单使用, git指令, 命令行操作git

One Comment

Leave a Reply