美文网首页简友广场想法
一杯茶的功夫,掌握Git常用命令(转载)

一杯茶的功夫,掌握Git常用命令(转载)

作者: CurryCoder | 来源:发表于2020-06-24 23:41 被阅读0次

    技术交流QQ群:1027579432,欢迎你的加入!

    欢迎关注我的微信公众号:CurryCoder的程序人生

    1.创建与合并分支

    • (1).从master分支创建dev分支,并切换到dev分支

      git checkout master
      git checkout -b dev
      
    • 其中,git checkout -b dev等价于

      git branck dev
      git checkout dev
      
    • (2).查看本地当前的分支,分支前面带*表示当前分支,剩下的分支表示本地有的其他分支

      git branch
      
    • (3).查看远程全部的分支,白色的表示本地有的,红色的表示本地没有的,仅在远程存在。

      git branch -a
      
    • (4).修改代码,提交代码(当前的操作是在dev分支上进行的)

      git add hello_git.txt
      git commit -m '提交文件hello_git.txt'
      
    • (5).分支合并(将dev合并到master分支)

      git checkout master
      git merge dev
      
    • (6).合并完成后,删除dev分支(删除dev分支时,注意我们当前所在的分支不能是dev分支)

      git branch -d dev
      
    • (7).删除后,查看分支(此时看不到dev分支啦)

      git branch
      
    • (8).总结:工作中经常从master分支创建新的分支,具体操作如下:

      git checkout master
      git checkout -b feature01  // 从master分支创建feature01分支
      git push origin feature01
      git add ..
      git commit -m 'xxx文件的提交说明'
      git push origin feature01
      
    • 注意:将本地分支branch1推送到远端的branch2操作步骤:

      git push origin branch1:branch2
      
    • (9).删除分支

      git branch -D feature01  // 本地强制删除分支feature01
      git push origin :feature01 // 推送到远端
      

    2.解决冲突

    • (1).发生冲突的文件

      <<<<<<< HEAD
      
      Creating a new branch is quick & simple.
      
      =======
      
      Creating a new branch is quick AND simple.
      
      >>>>>>> feature1
      
    • 其中,git使用 <<<<<<<,=======,>>>>>>>标记文件中自己和别人产生冲突的部分。在 <<<<<<<,=======之间为自己的代码;=======,>>>>>>>之间为别人的代码。如果保留自己的代码,将别人的代码删掉即可。

    • (2).冲突解决后提交

      git status
      git add ***
      git commit -m "fix conflict"
      git push origin 分支名
      

    3.Bug分支

    • (1).储藏更改:将当前更改的代码储藏起来,等以后恢复使用

      git stash
      
    • (2).恢复储藏的代码

      git stash pop 
      // 恢复的同时把stash内容删掉
      
    • 或者,先通过git stash list查看所有的stash,然后恢复指定版本的代码

      // 通过git stash list,查看本地所有的stash,如果我要恢复第一个就执行:
      git stash apply stash@{0}
      
      git stash apply  // 恢复stash,但是stash内容并不删除
      
      git stash drop // 在上面操作的基础上,以此来删除stash
      
      注:git stash list // 查看全部的stash列表
      
    • (3).将stash空间清空

      git stash clear
      
    • (4).git stash pop 和 git stash apply 区别

      • git stash pop stash@{id}命令会在执行后将对应的stash id 从stash list里删除
      • git stash apply stash@{id} 命令则会继续保存stash id

    4.版本回退

    • (1).回退至上一个版本

      git reset --hard HEAD
      
    • (2).回退至指定版本

      git reset --hard 版本号
      
    • (3).查看历史版本号(本地commit)

      git reflog
      
    • (4).查看各版本号及信息(所有的commit:本地commit + 其他同事的commit)

      git log
      

    5.撤销修改

    • (1).撤销修改

      git checkout -- hello_git.txt
      

      有以下两种情况

      a. 还没有执行 git add 操作,执行上面的操作后,会恢复到和版本库中一模一样的版本状态。

      b.执行了git add ,还没执行 git commit ,再执行上面的操作后,会恢复到git add 结束后的状态

      注意:一旦执行了git commit -m "*",就不能再使用上面的命令回退

    • (2).撤销新建文件

      比如新建一个hello.html页面,并未执行git add ,即没有被git追踪,此时如果你想撤销新建动作,可执行:

      git clean -f ../hello.html
      
    • (3).撤销新建文件夹

      例如,新建一个文件夹"demo",并未执行git add ,即没有被git追踪,此时如果你想撤销新建动作,可执行:

      git clean -df ./demo
      

    6.对已push版本进行回退

    • (1).第一步

      git reset --hard 版本号 // 本地回退到指定的版本
      
    • (2).第二步

      git push -f origin dev  // 将远程的也回退到指定版本
      

    7.本地同步远程删除的分支

    git fetch origin -p  // 用来清除已经没有远程信息的分支,这样git branch -a 就不会拉取远程已经删除的分支了
    

    8.删除未与远程分支对应的本地分支

    • 从gitlab上看不到的分支在本地可以通过git branch -a 查到,删掉没有与远程分支对应的本地分支

      git fetch -p
      

    9.查看远程库与本地分支的信息

    git remote show origin
    

    10.标签管理

    • (1).给当前分支最新commit打标签tag

      git tag v1.0.0
      
    • (2).例如现在周五,要给周一某个commit打标签,应该执行以下步骤

      • (a).查看log日志,找到相应的commit版本号

        git log --pretty=oneline --abbrev-commit
        // 显示如下commit,比如我想在 "34372b05"这个commit打标签
        44d2e20b fix bug
        34372b05 fix bug
        29554931 fix bug 
        
      • (b).给指定的commit打标签

        git tag v1.0.0 34372b05
        
      • (c).创建的标签只存在本地,推至远程

        git push origin v1.0.0
        
      • (d).一次性推送未推至远程的本地标签

        git push origin --tags
        
      • (e).查询所有标签

        git tag
        
      • (f).查询标签详细信息

        git show v1.0.0
        
      • (g).删除本地标签

        git tag -d v1.0.0
        
      • (h).删除远程标签

        // 先从本地删除
        git tag -d v1.0.0
        
        // 然后从远程删除
        git push origin :refs/tags/v1.0.0
        // 最后可以在gitlab上查看是否真正的删除了标签
        
    • (3).创建带有说明的标签,用-a指定标签名,-m指定说明文字

      // git tag -a 版本号 -m 说明信息 commit版本号
      git tag -a v1.0.0 -m 'version 1.0.0 released' 34372b05(commit版本号)
      // 查看标签详细信息
      git show v1.0.0
      

    11.参考资料

    相关文章

      网友评论

        本文标题:一杯茶的功夫,掌握Git常用命令(转载)

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