git命令基础

借用一句话:git是目前世界上最先进的分布式版本控制系统(没有之一)。网上有非常多的文章介绍关于git命令的原理和使用。本文介绍一些基础命令,适合新手学习,高手请忽略:)

图1

上面这个图是很久之前画的,在这儿重新搬出来。麻雀虽小五脏俱全,图中包括了提交和撤销提交的基础命令。本文就结合这张图学习下git基础命令。

图中包括了2条主线,一条是从左向右,即提交代码,另外一条是从右向左,即回退代码。为毛要有回退代码呢?在提交的代码的过程中,大部分情况下是顺利的,但是仍有那么小部分情况没那么顺利,这个时候回退代码就会派上用场。当然对大部分开发者来说,最主要的还是提交代码。

先介绍下本地仓库和远程仓库。所谓本地仓库就是个人计算机上的仓库,也就是我们直接编辑和修改代码的仓库。本地仓库的创建方式有多种,可以由个人在本地创建,也可以从服务器克隆。大多数情况还是从服务器克隆,例如从github上clone一份代码时,其实就是将服务器上的远程仓库拷贝了一份到本地来,形成了一份本地代码仓库,仓库的信息在一个.git文件夹中,默认是隐藏的。远程仓库就是服务器上的代码仓库。一般来说,开发流程是这样的:首先在服务器上创建仓库,开发者将远程仓库clone到本地并行开发,然后将本地修改的代码通过本地仓库推送到远程仓库。下面就分分几个部分看看git基础命令。

1.本地仓库和远程仓库交互

两个仓库之间的交互无非就是两个方面,一个是从远程仓库更新代码(git pull),另一个就是把本地仓库的代码推送到远程仓库(git push)。这两个命令是仓库交互中用的最多的命令。

2.提交代码

提交代码,就是把本地修改的代码提交到本地仓库,完成这一步后,才能执行git push 将本地仓库的代码推送到远程仓库。把图1中的提交代码主要流程摘出来,如图2

图2

图中的方框表示状态。

(1)修改本地文件(包括新建文件,编辑已有文件和删除文件);

(2)命令行中执行 git add 文件名(对于删除文件,使用git rm 文件名);

(3)执行git commit,此时会弹出编辑器提示输入描述;

(4)输入这次提交代码的简要描述(便于查找)然后退出编辑器。

经过上述4个步骤,2条git命令,就将本地修改的代码提交到本地仓库。顺利的情况下,此时执行 git status查看下本地仓库的状态,会得到一个working directory clean 的提示。同时用git log命令可以看到刚才的提交记录,提交记录中有输入的提交描述。这个时候使用git push 就可以将刚才修改的代码推送到服务器,其他开发者更新代码后就会看到你的提交了。

再看一下提交代码过程中可能用到的命令:

(1)git status:这是一个经常使用的命令,用于查看本地仓库状态。命令会列举出本地修改(包括增加,编辑和删除)的文件以及分别处于什么状态。

图3

(2)git diff :查看本地修改的代码和原始代码的差异。这个命令适用在修改阶段,即修改了代码之后、执行git add/rm 命令之前的阶段。如果已经处于暂存阶段(执行了git add/rm命令),只需加上参数--cached,即git diff --cached即可查看修改的详细内容。

(3)git commit --amend:补充提交。适用阶段为在提交后(git commit)推送前(git push)。当已经完成了提交后,发现有文件不小心漏掉了,或者提交了之后发现提交描述写错了,这个时候就可以使用git commit --amend命令进行补充提交。

(4)git log:查看提交记录。命令会列出本地仓库中所有人的提交记录,记录中包括提交人,提交描述,日期和hash号等信息。如果要查看某次提交的详细内容,可用git log -p hash号或者git show hash号查看,其中hash号是在提交的过程中系统生成的40位长的字符串。

3.回退

这个是提交代码的反向过程,如图1中从右指向左侧的箭头所示。这一块的操作都是在本地仓库进行的,不会对远程仓库产生影响。

(1)从提交状态回退

假如本地仓库中最新的提交hash为a,然后我们在这个基础上提交了一次hash为b。那么如下两个命令含义为:

git reset --hard a:首先从仓库中删除b,强制代码回退(同步)到a指向的位置,同时b的修改不会保留。

git reset --soft a:区别在于会保留a之后的修改,因此b的修改会保留下来(处于暂存状态)。

(2)从暂存状态回退

git reset HEAD 文件名

(3)从修改状态回退

git checkout 文件名

4.总结

提交过程:git add ,git commit

回退过程:git reset HEAD,git reset --hard/soft

在提交代码的过程中,搞明白自己处于哪种状态,以及要到哪种状态,然后执行相应的命令即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,649评论 9 163
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,469评论 1 26
  • 本片内容转自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃儿阅读 4,931评论 2 88
  • Oracle行转列Sql语句示例 报表示例: 实现步骤 步骤1,得到某个考试科目ID的所有题(包含主客观题)所有给...
    Bobby0322阅读 2,309评论 0 0
  • 现代人的少年时期似乎在美好间潜藏着烦躁。豆蔻年华在学校与家庭的两点一线间消磨,时而迸发出几个叫做青春的符号。机械化...
    汤圆先森阅读 197评论 0 2