git命令

作者: zxy_3197 | 来源:发表于2018-01-07 23:48 被阅读0次

    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/可以删除一个远程标签。

    相关文章

      网友评论

          本文标题:git命令

          本文链接:https://www.haomeiwen.com/subject/umrynxtx.html