美文网首页技术文档写作Git
【GIT学习总结 I】TW常用GIT命令

【GIT学习总结 I】TW常用GIT命令

作者: Joy的未来十年 | 来源:发表于2021-08-28 17:25 被阅读0次

    Markdown写作 + Git版本管理 已成为全球IT互联网公司的主流写作平台,如果你有心投身这一领域从事技术写作,不妨事前学习一下Markdown语法以及Git版本管理的原理与常用指令。在国内的Gitee上搭个自己的repo,练练手。写作工具用顺手了,无疑可以让你有更多时间来了解产品,专注文档构思与写作。

    目前已经快入职三个月了,慢慢对GIT不再恐惧,对GIT命令行也熟悉进来。前几天提交对原文档中几个节点的大修改,Merge Master后出现了一大堆Stashed/Staged的文件,以及莫名其妙的错误提示,彻底慌乱了。最后把产品的本地库删除,重新Clone远程库,重新基于远端分支建本地分支...似乎是搞清楚了一些概念。记录一下。

    GIT之于文档管理的优势

    目前,Markdown文档的版本管理是,基于Master,每个新feature,建立一个分支。Draft完成后,通过BitBucket Create Pull Request(PR) 。将PR发给Reviewer。Git之于文档管理,一个强大的地方是方便文档审阅。

    • 见下图,它清楚地对比出前后两个版本的区别。


      Diff对比
    • Reviewer可以直接在某一行加Comments,并且@相关人员。


      image.png
    • 另外,Git的强大版本管理功能(Versioning)--需要等将来有机会接触后台Merge版本才能有体会了。

    Git存储区域

    Git存储区域

    Git常用命令

    图解

    Git常用命令

    常用命令

    Clone文档库

    cd <本地Repo所在folde>
    git clone ssh://git@code.abc.net/pd/xxx.git //只会clone master分支到本地,远端的其它分支是不会clone到本地的

    根据远端分支建本地分支

    方法1:
    Git pull:
    Git branch

    Git branch后本地并没有显示新branch
    Git checkout <分支名>
    Git Checkout该分支后Git branch

    方法2:
    Git branch -r //查看远端分支,保证新分支存在
    git checkout -b branchname origin/branchname //建立本地分支,并将它map到远端分支
    注意!branchname前不能加"/"

    提交本地分支到远端分支

    1. 如果有新增文件,必须先执行该命令
      Git add .

    2. 如果有repo中没有用到的文件,必须先执行删除,否则commit不会成功
      Git rm <文件名>
      Git rm -f <文件名> // 如果删除之前修改过并且已经放到暂存区域的文件,则必须要用强制删除选项 -f
      注意!删除时要带相对路径

    3. 修改以及增加删除的文件从本地暂存区提交到本地库**
      Git commit -m "reason for the commit" //将修改从本地暂存区提交到本地库
      Git commit -am "reason for the commit" //把暂存区的所有被修改或者已删除的文件提交提交到分支,
      注意! : 如果有新增的文件,必须在commit前,一定要先执行Git add .以及Git rm

    4. 将本地库修改同步到远端库,新手容易忘记这步!
      Git Push

    其它通用指令

    • 在commit前用该命令,查看显示工作区(workspace)与暂存区(stage/index)的状态。使用此命令能看到那些修改被暂存到了, 哪些没有
      Git status
    • 显示所有本地分支
      Git branch
    • 显示所有远端分支
      Git branch -r
    • 回退到本地库中的版本,放弃工作区(workspace)中所做修改
      git checkout <file>
    • 删除.git本地库
      1. Enter the local repo folder.
      2. $ rm -rf .git
      3. In File Manager, delete the repo folder.
    • 多个Commit后,如何回到某个Commit (head)的状态
      1. 查看Commit head id
        Git log
      2. 强行回退
        git reset --hard <Commit head IDs>

    关于Staged与Stashed files

    Staged -- 保存在暂存Stage/Index(缓存区)的文件,也就是完成了git add .的文件,但没有committ。
    Stashed--临时需要切换branch,但working区的文件又不想commit,但又想保存在某个地方,以便下次继续开发,可用stash命令,将其暂存在working区的暂存区(并不是stage/index区)。-- PR时会把你所有的commit都显示出来,如果你每做一点点修改,就commit,你的每一次commit记录都会被别人看到。此时,stash命令就比较有用了

    文档开发过程中,定期Merge Master内容。

    因为Master是总版本,其它writer在不断向其中merge他们的feature分支。提交PR前一定要做Merge操作,一则解决多个writer可能同时修改一个文件产生的冲突,另一则,Diff才会只标注你所做的修改。
    方法一:

    1. (分支a)Git checkout master
    2. (本地master) Git pull
    3. (分支a)Git merge master //merge最新的master
    4. (分支a) Resolve any merge conflicts, add, commit, and check status. 切记必须commit到本地库
    5. (分支a) Git Push

    方法二:

    1. 保证本地工作区是没有任何修改代码的,也就是说需要将本地工作区编辑过的文件添加到暂存区(git add .),或提交到本地仓库中(git commit),才可以使用该命令拉取指定分支的代码合并到当前分支中。
    2. (分支a) Git pull origin master
    3. (分支a) Resolve any merge conflicts, add, commit, and check status. 切记必须commit到本地库
    4. (分支a) Git Push
    Git stash

    https://www.atlassian.com/git/tutorials/saving-changes/git-stash

    Stash pop vs stash apply Stash list Choose which stash to apply

    $ git stash pop stash@{2}

    $ git stash apply stash@{2}

    $ git stash drop

    相关话题:
    【GIT学习总结 2】GIT Debugging汇总
    【GIT学习总结 3】GIT 进阶学习)

    相关文章

      网友评论

        本文标题:【GIT学习总结 I】TW常用GIT命令

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