Skip to content

拉取与推送

参考:https://www.yiibai.com/git/git_pull.html

1. 拉取

git pull <远程仓库名> <远程分支名>:<本地分支名>

只写一个分支名的话就表示远程分支名与本地相同。

1.1 基于 Rebase 的 Pull

参考:https://github.com/geeeeeeeeek/git-recipes/wiki/3.2-%E4%BF%9D%E6%8C%81%E5%90%8C%E6%AD%A5

--rebase 标记可以用来保证线性的项目历史,防止合并提交(merge commits)的产生。很多开发者倾向于使用 rebase 而不是 merge,因为我想要把我的更改放在其他人完成的工作之后

事实上,使用 --rebase 的 pull 的工作流是如此普遍,以致于你可以直接在配置项中设置它:

git config --global branch.autosetuprebase always # In git < 1.7.9
git config --global pull.rebase true              # In git >= 1.7.9

在运行这个命令之后,所有的 git pull 命令将使用 git rebase 而不是 git merge

2. 推送

与拉取的顺序相反,可以这样记忆顺序:拉取时将<远程分支>拉取到<本地分支>;推送时将<本地分支>推送到<远程分支>。

git push <远程仓库名> <本地分支名>:<远程分支名>

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支:

$ git push origin :master
# 等同于
$ git push origin --delete master