• Git使用入门


    按照自己使用Github过程中的场景来学习Git。

    • 如何fork他人的项目并贡献

    具体场景描述:需要fork别人建好的仓库,并在根目录下创建自己的工作目录。每天算法打卡完成(对自己工作目录进行修改)后,把更新后的自己的目录同步到别人建好的仓库中。

    实现步骤:

      1. 进入别人的仓库地址,即他人的仓库中的项目,然后右边有个fork按钮。点击这个按钮,稍等片刻后,就会在自己的账号下克隆了一个一模一样的项目,包括文件、提交历史、issues等。

        image
      2. 使用git clone命令把自己账号下的对应项目clone到自己的电脑。

        image
      3. 这个时候可以直接修改自己master中的项目,修改完成后使用git add xxx和git commit xxx命令把修改提交到本地版本库中。为了防止改坏项目,不建议直接在master分支上进行修改。可以使用git checkout –b dev命令切除一个dev分支。修改完成后再将dev分支merge到master分支。
      4. 向原作者提交自己的代码。点击自己仓库中的pull request下的New pull request,系统(github)会对比原仓库分支与自己仓库分支代码,看是否有冲突。

        image
      5. 如果没有冲突会显示Able to merge,点击Create pull request按钮,进行提交。提交前可以向原作者说明改动情况。

        image
        image
        最后原作者会收到请求,若被同意则完成贡献。

     

    • rm删除的文件,如何在git仓库中删除

    具体场景

    我先使用了rm命令删除了本地文件,接着使用git add .和git commit xxx提交,再git push。尽管使用git pull命令后在本地仓库检查没有删除的文件(为什么呢?),但远程仓库中依旧存在有我在本地删除的文件。如何真正从远程仓库中删除呢?

    分析

    原来git add 表示 add to index only files created or modified and not those deleted(表示只把新建的或者更改的文件添加到索引区,不包含删除的文件)。

    在使用rm命令的前提下,需要加-u选项!git add -u  这个命令的意思是 add to index only files modified or deleted and not those created(只会处理已修改或者已删除的文件,但是不会处理新建的文件)。

    总结

    要删除远程仓库中的文件有两种方式,

      1. rm加上git add –u xxx命令。(后来尝试git add .或者-all好像又可以(可能主要原因是当时没有commit))
      2. git rm xxx命令加上git add xxx命令。

     

     

    进一步思考

    rm删除本地文件,接着git add –u 并且git commit –m xxx后(理论上本地仓库比远程仓库少了一个文件),为什么再使用git pull不会在本地仓库中添加刚才删除的文件?

    因为本地master分支在时间线上比远程master更靠后,merge会根据不同分支在时间线上的先后顺序来融合。

    • 参考链接

      1. Git 入门:概念、原理、使用
      2. GitHub怎样fork别人代码到自己仓库并进行贡献
  • 相关阅读:
    JSON的基本认识
    Linux基础 7-10 Bash编程练习4--for循环
    Linux基础7-9 Bash编程--for循环语句
    linux基础 7-3-条件判断语句案例
    Linux基础 7-8 sed命令使用练习
    Linux基础 7-7 set命令的使用
    Linux基础 7-6 Bash脚本编程练习3
    Linux基础7-5 Bash脚本编程--算术运算
    Linux基础7-4 Bash脚本编程练习2
    Linux基础 7-3 Bash脚本编程--条件判断
  • 原文地址:https://www.cnblogs.com/BoysCryToo/p/13256168.html
Copyright © 2020-2023  润新知