linux - 如何将 "shadow"git 存储库与主存储库 "secretly"同步

标签 linux git macos bitbucket

我有一个客户,我通过 git 存储库为其工作。我不想让他知道我正在部分使用另一个开发人员。因此,我创建了一个“影子”存储库,供我的开发人员使用。

如何将“影子”存储库与主存储库同步,以便主存储库不知道发生了什么?

  • 我不能用 git 命令 merge ,因为这会暴露我真正做了什么。
  • 我可以复制和粘贴所有文件,但在 git 中会看到我已删除所有文件并替换为具有相同名称的新文件。这看起来不太好。
  • 我的客户正在使用 bitbucket。我可以向其他开发人员提供我的 bitbucket 登录信息,但我想避免这样做。
  • 真正有效的是,我可以在主存储库中打开一个文件,删除内容,然后粘贴更新的代码。然后我可以提交,看起来我是否直接在主存储库中完成了工作。但这很耗时(我没有太多时间)。

有没有其他方法可以让我“ secret 地”将文件内容从影子存储库复制到主存储库?是否有一个 linux/osx-command 我可以使用它来替换文件的内容而不删除和重新创建文件(然后我可以递归地使用它)?是否有一个 git 命令可以在不留下我实际所做的证据的情况下实现这一点?

最佳答案

您可以使用命令行让不同的 git 存储库修改同一组本地 文件。只需使用 GIT_DIR 环境变量。 Git 存储库是完全独立的,并且可以跟踪同一目录中的文件。

rem set Git to use the sub-developer's git repository
set GIT_DIR=/path/to/sub/repository.com

rem verify which repository that you are on
git rev-parse --git-dir

rem pull the sub-developer's latest
git pull

rem merge, commit, change, push, change branches, whatever
rem ... when the code is the way you want it

rem switch to client repository
set GIT_DIR=/path/to/client/repository.com

rem bring main repository up to date
git commit -m"changes brought over from sub-developer"

rem push the updated code to the client repository
git push

这对于其他开发实践很有用,例如版本控制实验室数据、本地开发实用程序、工作日志和其他似乎与源代码一起累积但不应与源代码一起存档的“杂项”文件。

关于linux - 如何将 "shadow"git 存储库与主存储库 "secretly"同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39369345/

相关文章:

c - SIGXFSZ 是由内核发送的,除非将某些内容打印到标准输出?

java - 从 java 运行终端命令(使用 Eclipse)

git - 如何获取 Git 的最新稳定版本号?

Git:忽略已编译的 Google Go

python - 无法使用 cx_Freeze 在 Mac OS X Yosemite (10.10) 上构建独立应用程序

c++ - 在 Mac OSX 中设置 QComboBox 样式

linux - 我们可以在 bash shell 中进行动态替换吗?

xml - PL SQL XMLDOM 改变行结尾

linux - 我在哪里可以找到 vim 增强的资源?

python - os.path.exists 返回 False w/Escaped Paths Including Spaces