git命令

1.git init 当前文件变成git存储库也叫版本库。

2.git status 查看当前版本库的状态

3.git diff 查看现在和之前有何不同

4.git add  相当于把你要提交的文件提交到版本库的暂存区。

5.git commit  -m "添加文件的说明"  提交文件到git版本库中。每提交一次相当于创建了一个版本库! -m表示对你提交内容的说明

6.git log  命令显示从当前时间点最近到最远的提交日志

7.git log --pretty=oneline  以单线图的形式显示。显示的内容清晰,简单明了。

8.git reset --hart   Head^  回退到上一个版本。 Head~10 回退到前10个版本。hrad 后也可跟版本号。

9.git reflog 显示历史版本操作记录,记录版本及版本指向操作

10.工作区、暂存区、版本库 如图

11.管理修改:

先将工作区的修改都添加到暂存区,然后进行提交。git add file  git commit  -m"修改的说明".

12.撤销修改

(1).在你还没有将修改添加到暂存区的时候撤销。使用命令  git checkout -- file

(2).在你将修改添加到暂存区还没有提交的时候撤销。使用命令 git reset HEAD file 。会将文件从暂存区放回到工作区。在使用 命令 git checkout -- file 。就会丢弃修改。

(3).现在,假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢?还记得版本回退一节吗?可以回退到上一个版本。不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。还记得Git是分布式版本控制系统吗?我们后面会讲到远程版本库,一旦你把“stupid boss”提交推送到远程版本库,你就真的惨了……

13.    删除文件

    删除文件  使用命令: rm file  

     现在有两种情况:

        (1).完全确定自己要删除  使用命令 git rm file;git commit -m "delete file"

        (2).删除错误想要恢复到以前,使用命令  git checkout -- file;命令的意思是从版本库将文件恢复到工作区

14. GitHub中示例远程操作(在有本地库的情况下)

        (1)本地添加一个版本库,GitHub中添加一个远程库learnGit

        (2)将远程库与本地库关联起来。 命令如下:

                    git remote add origin git@github.com:zxyjuese/learngit.git 其中origin为远程库的名称,git@github.com:zxyjuese/learngit.git为远程库                                         的地址;

        (3)将本地库推送到远程库。命令如下:

                    git push -u origin master   

                把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

                由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,                    还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

            小结

                要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;

                关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

                此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

15.GitHub中示例远程操作(在没有本地库的情况下)

            (1)首先,登陆GitHub,创建一个新的仓库,名字叫gitskills:

            (2)通过命令将远程库克隆到本地 命令如下:

                   git clone git@github.com:zxyjuese/gitest.git

                   小结:

                        要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

                        Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

16.git分支命令

        (1).git checkout -b  dev       创建并且换至dev分支

        (2).git checkout dev            切换分支

        (3)git branch                       查看分支

        (4)git merge dev                 合并 dev分支到当前分支,可能会出现Fast-forward字段,说明当前是快进合并,直接将master指向dev

        (5)git branch -d dev             删除分支

        (6)git branch dev                 创建分支dev

        (7)合并分支冲突后通过命令 git log --graph命令可以看到分支合并图。简化分支合并图命令  git log --graph --pretty=oneline --abbrev-commit

        (8) 分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁                    用 Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

                禁止使用Fast forward 的命令 git merge --no-ff -m"merge with no-ff"dev

         分支策略

                在实际开发中,我们应该按照几个基本原则进行分支管理:

                首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

                那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master                    上,在master分支发布1.0版本;

                你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

                所以,团队合作的分支看起来就像这样:

                小结

               Git分支十分强大,在团队开发中应该充分应用。

                合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾                  经做过合并。

        18.关于隐藏当前的添加,适用于你现在工作完成了一半,又不想提交,但又想贴换到其他分支干别的事。这时候就需要用到隐藏命令:

                    git stash  隐藏当前添加到暂存区的文件,并保证你切换分支后这个文件不会在本地出现。

                    接下来你就可以为所欲为的干你想做的事,比如修复bug。。 任务完成后,你可以将分支切回去,然后使用命令:

                    git stash apply 将隐藏的文件显示出来,这个命令不会将git stash list中的对应的列表删除,要删除 可以通过命令

                     git stash drop这个命令

                    也可以通过命令: git stash pop 这个命令将隐藏的内容显示,并且会将git stash list中的对应列表删除。    

                    接下来你就可以继续在原来的基础上工作了

        19.创建的分支没有被合并,但是还是要删除它,我们就使用命令强行删除,如下

                    git branch -D feature

        20.多人协作

                git checkout -b dev origin/dev        创建远程dev分支到本地,并切换到本地dev分支

                小结

                        查看远程库信息,使用git remote -v;

                        本地新建的分支如果不推送到远程,对其他人就是不可见的;

                        从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

                        在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

                        建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

                        从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

        21.tag命令

                git tag v1.0     打包标签ming

                git tag v0.9   commitid   打包历史标签

                小结

                    命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

                    git tag -a -m "blablabla..."可以指定标签信息;

                    git tag -s -m "blablabla..."可以用PGP签名标签;

                     命令git tag可以查看所有标签。

                   操作标签

                        小结

                                命令git push origin 可以推送一个本地标签;

                                命令git push origin --tags可以推送全部未推送过的本地标签;

                                命令git tag -d 可以删除一个本地标签;

                                命令git push origin :refs/tags/可以删除一个远程标签。

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

推荐阅读更多精彩内容