从远程创建第一个本地Git分支,而不更改任何现有文件

时间:2017-11-02 04:23:49

标签: git git-branch

我将一些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 checkoutgit symbolic-ref HEAD refs/heads/<otherbranch>然后git reset)尝试了解决方案但回顾过去我认为他们假设已经存在的本地分支。

当我在第二台服务器上执行git status时,它会将所有文件显示为未分级。

是否可以在不更改任何本地文件的情况下签出新分支?如果是这样,什么命令可以做到这一点?

2 个答案:

答案 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

从这里开始,你可以像这样继续工作。显然,您希望避免任何批发checkoutmergepullrebase操作。但明智地使用樱桃采摘可能不会造成太大损害。

您可以安全地编辑某些第三个存储库中的文件,这样您就可以通过快进执行来准备更大的更改。

答案 1 :(得分:0)

我刚刚找到了一种非常简单的方法:

  1. 将Git存储库克隆到空目录中。这将自动检出所有文件,然后可以忽略
  2. 仅将.git目录(和内容)移动到旧现有文件
  3. 的目录中
  4. git status确认,它会显示少数不同的文件,如果有的话
  5. 在进行checkout等进一步的Git命令之前,不会触及现有文件。