0. 将本地分支提交到(同名的)远程
如果想将本地分支提交到远程,需要明确远程的名称已经要push的分支的名称
"""
语法格式
git push <remote> <branch>
"""
$ git push origin my-feature
结果如下,本地的my-feature 提交到对应远程的my-feature
- 如果本地还没有切换到要
push 的分支,可以执行git checkout <branch-name> 来切换到你想要push 的分支。 - 如果要上传的分支(upstream branch,远程的/上游的分支)还没有建立,那么在
push 的时候需要加入-u 参数来创建这个上游分支 git push -u origin my-feature ,这句会在远程新建一个叫my-feature 的分支,同时会把本地的内容上传到远程的my-feature 分支中(和本地同名)
参考:?How To Push Git Branch To Remote
1. 将本地分支提交到远程的另一分支
$ git branch -a
* huangs
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/huangs
$ git add *
$ git commit -m "XXX"
$ git push origin huangs:dev
.....
b1c4c91..9ae0aa6 huangs -> dev
"""
语法格式
git push <remote> <local_branch>:<remote_name>
"""
注意,
- 一般在
push 之前,要对远程分支和本地分支进行一下merge 。 - 想进行
merge ,需要保证远程分支的tip (不知道这个词啥意思,?)不能位于要push 的分支之后。 push 之前,确保pull 了所有远程分支的修改(changes ),同时把这些修改整合到了当前的本地分支中- 在合并远程分支时,需要把本地分支和本地分支对应的远程分支进行合并
$ git pull
$ git checkout my-feature
$ git merge origin/feature
$ git push origin my-feature:feature
参考:
2. 将本地分支提交到另一个repo
"""
语法规则,需要明确远程repo的名字,及要上传的分支名
$ git push <remote> <branch>
"""
$ git remote -v
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
custom https://github.com/user/custom.git (fetch)
custom https://github.com/user/custom.git (push)
$ git push custom my-feature
""
如果想要上传的remote还没有添加到本地,可以使用add来添加
详见 https://git-scm.com/docs/git-remote
""
$ git remote
origin
$ git branch -r
origin/HEAD -> origin/master
origin/master
$ git remote add staging git://git.kernel.org/.../gregkh/staging.git
$ git remote
origin
staging
参考:
3. 撤销push的commit
如果不小心push 错一个commit ,可以按照如下方式进行回退(基本上都是本地先reset,然后再push到远程),但是有一个比较直接的方法,如下
"方法1,直接push上一次的commit"
git log
git push -f origin last_known_good_commit:branch_name
git push -f origin 3XXXX644e7afe5bXXXX7188483:huangs
"方法2,本地先reset,再push到远程"
$ git reflog
4e212ca (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: commit: мой последний коммит
e12ea6d HEAD@{1}: reset: moving to HEAD^
132ae6f HEAD@{2}: commit: XXX
e43ea6d HEAD@{3}: commit: XXX
2234538 HEAD@{4}: pull: Fast-forward
89543c9 HEAD@{5}: commit: fix search
git reset --hard HEAD~1
git push --force
参考:
|