git:如何在不 checkout 的情况下推送?

标签 git sync

我有两台电脑A和B,用git同步了一些文件,比如init.el。 A 的 repo 托管在 unfuddle 上。 B的repos在本地。

  • 修改并推送A中的init.el。
  • B中的init.el也被修改。

问题是:如何将 A 的更改 merge 到 B 的更改并将最终的 init.el push unfuddle (A),无需扩展 A 在 B 中的所有文件

或者有更好的解决方案?

谢谢。

最佳答案

所以,如果你不想 pull 在A处修改的文件,你可以这样做:

B 处,创建一个新分支并将其推送到远程服务(unfuddle,如您所说):

cd path/to/init.el
git branch featureModifiedInB
git checkout featureModifiedInB
git push origin featureModifiedInB

A, pull 在B创建的分支的更新,管理 merge 和冲突:

cd path/to/init.el
git pull origin featureModifiedInB  // Or you can do fetch and manually do merging.
git checkout master
git merge featureModifiedInB

// After solve the conflict if it exists.
git push origin master

它确保使用B 的人看不到使用A 的人编辑的文件。但这会导致一个问题:pB 无法获得有关她/他创建的代码的反馈。但是pA也可以修改featureModifiedInB分支,让pB来 pull (mum..有点麻烦..)。

关于git:如何在不 checkout 的情况下推送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676903/

相关文章:

git - 硬链接(hard link)会被破坏吗?

git - 持续部署到 Azure 网站时如何使用 EnableMSDeployAppOffline?

git - 缺少平衡此 if 语句的结尾

android - 以用户定义的频率同步选定的帐户

ios - iCloud - 如何保存包含自定义对象数组的存档

android - 检查 Android 中是否启用了自动同步

javascript - node.js 同步执行系统命令

git - 我如何在单独的驱动器上设置一个 "remote"存储库并克隆该存储库以在另一个具有 git 版本控制的驱动器上工作?

git push >> 致命的 : no configured push destination

mysql - 如何在同一台服务器上复制 MySQL 数据库