git常用命令

昨天认认真真请教了男朋友,关于git的常用命令的使用方法。

  1. git clone 项目地址:拉取代码;

  2. git branch:查看各个分支;

  3. git checkout new:切换到new分支;

  4. git branch -b new1:新建一个分支名为“new1”,并且切换到该分支,-b的意思就是build;
    注意在本地新建分支之后,提交代码时,我们不能用常规的提交方式git push提交;它会提示我们,本地分支没有与远程分支连接(意思就是说,git不知道我们要把这个本地分支的代码提交到远程的哪个分支上)。所以git push的时候我们需要将新建的分支与远程的分支连接,比如远程有个分支叫做new1(一般为了日后维护,本地分支名称应该与远程分支名称是一样的),提交方式为:git push origin new1

  5. git log:查看提交的版本,里面有各个版本的修改信息。一般我们要回退版本的,需要先查询提交版本,复制版本号;

  6. git reset --hard 版本ID:回退版本。

  7. git merge new1:合并代码。如果我们要将分支new1的代码合并到master上,我们就需要在master分支上执行 git merge new1。

  8. git commit =》git pull =》git push:提交代码: 关于提交就会有很多不同的差异性,我认为最好的方法还是 git commit=》git pull =》git push;
    首先解释一下,git add 、git commit 、git pull、git push几个命令的含义;
    git常用命令_第1张图片

    git add:就是将工作区的代码勾选了(git add . 全选的意思),保存到暂存区;
    git commit :提交到本地仓库;
    git push :将本地仓库的代码提交到远程仓库。
    git pull:如下所示,git pull是直接将远程仓库的代码更新到工作区,所以,git pull之后,如果有冲突,解决冲突之后需要重新执行git add和git commit,git push这样才能将代码提交到远程仓库。
    git常用命令_第2张图片

    再分析不同内容之下,不同操作的差异;
    a.远程仓库和工作区没有任何区别;
    可以直接git pull ,在git commit ;但是(只适用于单人开发的,如果是多人开发的话,那肯定多多少少是有区别的。因为你真的不知道协同开发者会不会不小心跟你操作了同一个文件;甚至同一段代码。)
    保险起见还是先git commit ,再git pull;麻烦就麻烦一点吧。

    b.远程仓库和工作区有区别,但是是不同文件之间的差异。这里我觉得吧,直接git commit -m “modify” =》git pull 好了,不会有冲突,然后git push。

    c. 同个文件,线上版本跟你的版本修改了不同的地方,比如程序员A修改文件头,程序员B修改文件尾,(其实这也是一种冲突,一种隐性冲突)。
    如果执行顺序为git commit -m “modify” =》git pull ,git pull之后,git只会warning你,自动将这两个修改合并,这种冲突git会帮你auto merge,并自动生成一个commit;可以直接git push。但是也会有两个commit,一个是手动的"modify",另外一个就是系统自动的 “auto merge”。
    如果你的顺序为 git pull =》git commit -m “modify”。自动合并,git push成功,没有多大问题

    d.同个文件,假设线上版本跟你的版本修改了相同的地方,那么线上和本地就有冲突,需要手动去修改冲突;
    如果有冲突的话,直接是push不上去的。

    如果你的顺序为 git commit -m “modify” =》git pull ,commit之后,git pull的时候会提醒你有冲突,需要你去手动解决冲突;并且修改之后需要重新执行提交代码(git add. = 》git commit -m “merge conflict”),因为你修改了你的代码,再最后执行以下git push;此时,线上的提交记录就会有两次 commit("modify"和 “merge conflict”)。

    如果你的顺序为 git pull =》git commit -m “modify”。先去执行 git pull,直接提示你有冲突,需要手动解决;然后再继续执行git commit和push。虽然线上只有一次commit记录,但是这样,你的commit中夹着你修改的代码和你的同事修改的东西,commit记录就不单纯;所以有冲突的情况下,不建议执行git pull;如果你拿不准远程和本地是否有冲突,先commit吧;

你可能感兴趣的:(git)