同步本地Git仓库与远程仓库

12 浏览
0 Comments

同步本地Git仓库与远程仓库

我希望将本地仓库与远程仓库同步,使得本地仓库成为远程仓库的完全复制品 - 这意味着如果这些仓库中的某些文件有差异,我们将使用远程仓库覆盖本地仓库,如果本地仓库中存在远程仓库中不存在的文件,则删除本地文件。\n除了进行一次全新的远程仓库克隆之外,还有其他方法可以实现这一目标吗?\n与Sync local git repo with remote in one shot discarding local changes/commits类似的问题。

0
0 Comments

问题: 同步本地Git仓库与远程仓库出现的原因和解决方法

原因:

- 本地仓库与远程仓库的提交记录不一致,导致无法同步。

解决方法:

1. 使用以下命令处理所有本地更改:

   git reset --hard HEAD
   git clean -f -x -d -n
   

然后去掉-n。这将处理所有本地更改。

2. 查看当前状态:

   git status
   

注意到如下一行:

Your branch is ahead of 'xxxx' by N commits.

记下数字'N'。

3. 执行以下命令:

   git reset --hard HEAD~N
   git pull
   

最后执行:

   git status
   

应该显示没有需要添加/提交的内容。

4. 全新克隆也可以实现相同效果,但速度较慢。

更新:

随着我对Git的了解逐渐提高,我找到了另一种更简单的方法来实现相同的效果。以下是具体步骤(带有解释)。在工作分支中执行以下命令:

   git fetch # 更新本地仓库的远程部分
   git reset --hard origin/
   # 这将将本地副本与远程内容同步,丢弃任何已提交或未提交的更改。
   

尽管此操作后,本地的提交和更改将不再可见,但如果需要,可以恢复已提交的更改。

注意: 请小心使用,以免误操作删除文件或更改。可以通过git reflog命令来恢复提交。

示例对话:

A: 谢谢,你删掉了我所有的文件,太棒了:)

B: 是的,我之前的提交领先于主分支7个提交,现在我与远程主分支同步了。

A: 顺便说一句,你可以通过git reflog命令来恢复你的提交,然后切换/检出/选择你喜欢的提交。没有数据会丢失。

0
0 Comments

问题出现的原因:想要将本地Git仓库与远程仓库进行同步。

解决方法:

1. 使用git fetch --prune origin命令从远程仓库获取更新,并删除已在远程仓库中删除的分支的引用。

2. 使用git reset --hard origin/master命令将本地仓库重置为与远程仓库完全相同的状态。

3. 使用git clean -f -d命令清除所有不被推荐的目录,这些目录通常是由npm install和bower install命令创建的,除非您想重新安装在.gitignore中的所有依赖项。

需要注意的是,git clean -f -d命令会删除未跟踪的文件,如果不小心使用可能会导致数据丢失。

有人遇到了问题,使用上述操作导致全局仓库与本地仓库同步,但是根据描述,这是不可能发生的。以上所有命令只会影响本地仓库,而不会影响远程仓库。

有人表示成功同步了远程仓库和本地仓库,但建议移除git clean -f -d命令。

需要注意的是,使用--prune选项可能会删除本地仓库中不在远程仓库中的所有分支。

使用git fetch --prune origin命令更新本地仓库,并删除已在远程仓库中删除的分支的引用。然后使用git reset --hard origin/master命令将本地仓库重置为与远程仓库完全相同的状态。最后,使用git clean -f -d命令清除不需要的目录。但需要注意,--prune选项会删除本地仓库中不在远程仓库中的所有分支。

0
0 Comments

问题的原因是本地Git仓库与远程仓库不同步。解决方法包括以下几个步骤:

1. 同步分支引用:

通过使用`git fetch --prune`命令来清除本地不再存在于远程仓库的分支引用。

2. 同步提交:

使用`git reset --hard origin/<当前分支名称>`命令将当前分支重置为远程仓库的位置,可能会丢失本地的更改。

3. 同步文件/更改:

- 对于未暂存的更改,可以通过上述的`git reset --hard`命令进行清除。

- 对于未跟踪的文件,可以使用`git clean -f -d`命令进行清理,但可能会丢失一些本地的工作。

- 对于被忽略的文件,可以运行`git clean -f -d -x`命令进行清理,该命令还配有一个`-n`选项,用于显示将要执行的操作,而不会实际删除任何文件。

以上是解决本地Git仓库与远程仓库不同步问题的方法。

本文参考了Stack Overflow网站上的回答,并给出了相关的命令和说明。

0