Git Push-导出提交到远程存储库

时间:2020-02-23 14:33:22  来源:igfitidea点击:

在本教程中,我们将学习Git push将提交从本地存储库转移到远程存储库的知识。

在上一个教程Git Fetch中,我们学习了如何将更改从远程存储库导入到本地存储库作为远程分支。

git push命令与git fetch命令完全相反。
它用于将提交从本地存储库导出到远程存储库。

在上图中,我们在本地资源库的master分支后面有一个远程资源库origin/master分支。
因此,我们将git将本地提交推送到远程存储库,它将移动origin/master指针指向最新提交,类似于本地存储库的master分支指针。

警告! git push命令会覆盖更改,因此,在将提交推送到远程存储库时要小心。

推送提交

要将更改导出到远程存储库,我们使用git push [remote] [branch-name]命令,其中remote是为远程位置设置的名称,branch-name是我们要推送到的分支的名称。
远程存储库。

在以下示例中,我们将本地dev分支推送到名为origin的远程存储库。

$git push origin dev
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 246 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:/git-project.git
   8bef7bb..07ddcb7  dev -> dev

如果它不是目标存储库中的快速合并,则Git将阻止导出(推送)提交。

强制推送

为了强制将提交推送到远程存储库,我们使用git push [remote] [branch-name] --force命令。

在下面的示例中,我们在远程存储库中执行push to dev分支,但是它有一些更改不在本地存储库中。
因此,在将本地更改导出到远程存储库时遇到问题。

$git push origin dev
To github.com:/git-project.git
 ! [rejected]        dev -> dev (fetch first)
error: failed to push some refs to '[email protected]:/git-project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You Jan want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

因此,我们将执行强制git push。

$git push origin dev --force
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 246 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:/git-project.git
 + 1277ed3...07ddcb7 dev -> dev (forced update)

现在,我们可以将提交从本地存储库中的dev分支导出(推送)到远程存储库中的dev分支。

推送所有分支

要将所有分支推送到远程存储库,我们使用git push [remote] --all命令。

$git push origin --all
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 351 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:/git-project.git
   07ddcb7..d320e51  dev -> dev