在Github开车需要需要了解的git技能

更新forked项目

比如:我之前fork了Airflow这个仓库,隔了一段时间(官方的仓库已经有很多更新了)又想提交点PR,
那要不要重新删了这个repo再fork一次呢?
答案显然是:不用的。

首先我们添加下官方的remote,然后再fetch一下。

1
2
3
4
5
6
git remote add upstream https://github.com/whoever/whatever.git
# Fetch all the branches of that remote into remote-tracking branches,
# such as upstream/master:
git fetch upstream

然后:

1
2
3
git pull --rebase upstream master
# pull = fetch + merge
# 如果rebase有conflict的话可以先--hard reset 前几个commit再执行rebase

rebase的过程中可以把自己提交的不要的commit删掉。

最后再强推覆盖掉自己的repo

1
git push -f origin master

更新后,如果本地的 代码想全部舍弃掉,重新把remote的 clone下来的话,可以用如下命令:

1
git reset --hard origin/master