通过Git进行本地版本控制

  1. 用Git Bash在desktop上创建directory:My_first_Git

    cd ~/desktop/
    mkdir ~/desktop/My_first_Git
    
  2. 通过nano或者subl(Sublime Text)在My_first_Git中创建文档version1.txt

    nano version1.txt
    #或者subl然后在Sublime里输入内容1,即第一版内容
    
  3. 保存后,在该文件路径中创建git

    git init
    

    这样以后使用ls -a就会显示该文件路径下有一个隐藏文件.git

  4. 将version1.txt从Working Directory上传到Staging Area,再上传到git dirctory(Respostory)

    git add version1.txt #传入Staging Area
    git commit #传入git dirctory(Respostory)
    #或者前两步一步到位:git commit -a
    

    此时会打开Subilme或者其他默认编辑器,输入一行以动词开头的英文(eg: Add/Upgrade to version1/2/3/…)后保存即可

  5. 比较git dirctory(Respostory)中的现行版和历史版:
    输入

    git log
    

    显示如图
    在这里插入图片描述
    然后 找到要比较的两个版本的编码,如要比较上图的version2和version3:

    git diff 2c46107c176dfec27496f29d341b477ad188b8e6 9753cca034818b7c03d53650243e4338ec58123a
    

    在这里插入图片描述

  6. 比较Working Directory和Staging Area:

    git diff
    
  7. 比较Staging Area和git dirctory(Respostory):

    git diff --staged
    
  8. 返回git directory的最后一个版本:不论在本地(Working Directory)和暂存区(Staging Area)如何修改,只要还没有commit,都可以通过git_reset恢复git directory的最后一个版本

    git reset --hard
    
  9. 关于branch(分支):

    git branch #查看branch
    git branch chinese_version #创建了一个chinese_version
    git checkout chinese_version #切换到了chinese_version
    
  10. 分支合并:

    git merge master test
    

    通常除了master外还有一个test的分支,当test分支中的版本稳定后,就在master分支下合并:git merge master test,注意如果在test分支下合并则master的文件没有改变没有更新。

  11. 分支有冲突:当merge时,出现如下代码:

    Auto-merging xxx.txt
    CONFLICT (content): Merge conflict in xxx.txt
    Automatic merge failed; fix conflicts and then commit the result.
    

    原因:如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没法干净的合并它们。此时 Git 做了合并,但是没有自动地创建一个新的合并提交。 Git 会暂停下来,等待你去解决合并产生的冲突。 你可以在合并冲突后的任意时刻使用 git status 命令来查看那些因包含合并冲突而处于未合并(unmerged)状态的文件:

    $ git status
    On branch master
    You have unmerged paths.
      (fix conflicts and run "git commit")
      (use "git merge --abort" to abort the merge)
    
    Unmerged paths:
      (use "git add <file>..." to mark resolution)
            both modified:   xxx.txt
    
    no changes added to commit (use "git add" and/or "git commit -a")
    

    任何因包含合并冲突而有待解决的文件,都会以未合并状态标识出来。 Git 会在有冲突的文件中加入标准的冲突解决标记,这样你可以打开这些包含冲突的文件然后手动解决冲突。 出现冲突的文件会包含一些特殊区段,看起来像下面这个样子:

    <<<<<<< HEAD
    section_1
    =======
    section_2
    >>>>>>> test
    

    <<<<<<< HEAD与=======之间的部分是冲突的第一个部分,=======和>>>>>>> test之间的部分是冲突另一个部分。你需要二者择其一即可,比如改为:

    section_1
    

    注意:<<<<<<< HEAD,=======,>>>>>>> test都要删掉。并且记得改后commit。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crypto投资小白书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值