我将一些Apache配置文件放入Git存储库。两个服务器理论上应具有相同的配置。我创建了一个存储库,提交了文件并将分支从第一个服务器推送到远程存储库,现在我试图检查第二个服务器上的分支而不触及任何文件。
我的想法是,一旦我检查了分支机构,我就可以使用git status
确认两台服务器上的文件 相同(我已经手动发现一个小的差异)。然后可以在单独的分支中跟踪任何重要差异。这些是生产服务器,所以我不想让任何错误,甚至是暂时的。
我以前习惯使用GUI Git而且我还没有使用命令行Git。我只有shell访问服务器。
App-01 git show-branch -a
:
* [master] Initial commit
! [origin/master] Initial commit
--
*+ [master] Initial commit
App-02 git show-branch -a
:
[origin/master] Initial commit
我在switch git branch without files checkout(git symbolic-ref HEAD refs/heads/<otherbranch>
然后git reset
)尝试了解决方案但回顾过去我认为他们假设已经存在的本地分支。
当我在第二台服务器上执行git status
时,它会将所有文件显示为未分级。
是否可以在不更改任何本地文件的情况下签出新分支?如果是这样,什么命令可以做到这一点?
答案 0 :(得分:0)
轻松完成:
服务器A:
git init .
git add -A
git commit -m init
git checkout -b config-a
git remote add origin URL
git push origin config-a
服务器B:
....the same for branch config-b....
这些命令不会以任何方式更改您的文件。
然后在任何一台机器上:
git fetch
git diff origin/config-a origin/config-b
从这里开始,你可以像这样继续工作。显然,您希望避免任何批发checkout
,merge
,pull
或rebase
操作。但明智地使用樱桃采摘可能不会造成太大损害。
您可以安全地编辑某些第三个存储库中的文件,这样您就可以通过快进执行来准备更大的更改。
答案 1 :(得分:0)
我刚刚找到了一种非常简单的方法:
.git
目录(和内容)移动到旧现有文件git status
确认,它会显示少数不同的文件,如果有的话在进行checkout
等进一步的Git命令之前,不会触及现有文件。