按照自己使用Github过程中的场景来学习Git。
-
如何fork他人的项目并贡献
具体场景描述:需要fork别人建好的仓库,并在根目录下创建自己的工作目录。每天算法打卡完成(对自己工作目录进行修改)后,把更新后的自己的目录同步到别人建好的仓库中。
实现步骤:
-
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(只会处理已修改或者已删除的文件,但是不会处理新建的文件)。
总结
要删除远程仓库中的文件有两种方式,
-
rm加上git add –u xxx命令。(后来尝试git add .或者-all好像又可以(可能主要原因是当时没有commit))
-
git rm xxx命令加上git add xxx命令。
进一步思考
rm删除本地文件,接着git add –u 并且git commit –m xxx后(理论上本地仓库比远程仓库少了一个文件),为什么再使用git pull不会在本地仓库中添加刚才删除的文件?
因为本地master分支在时间线上比远程master更靠后,merge会根据不同分支在时间线上的先后顺序来融合。
-
参考链接