从两个现有存储库创建一个 git 裸存储库
Create a git bare repo from two existing repository
我正在和另一个程序员一起开发代码。因为一开始我不得不在不修改现有代码的情况下添加新模块,所以我复制了其他程序员的源代码并开始开发我的。因为我总是使用 git,所以我设置了一个 git 存储库并执行了一些提交。
现在另一个程序员修改了一部分代码,我也不得不修改一些我一开始不应该修改的部分。因此现在的情况是这样的:
- 我有一个包含修改文件和新文件的本地 git 存储库
- 另一个程序员有一个文件夹(没有git)包含修改过的文件
我们希望合并我们的修改并开始使用 git。我尝试使用他的代码作为起点(即他之前未跟踪的文件夹中的 git --bare
)在共享文件夹中创建一个裸仓库。然后我使用 git remote add origin /path/to/local/bare/repo
将这个 repo 添加到我的远程命令中。然后我尝试使用 push origin master
推送我的更改(可能包含冲突),但我收到以下消息:
Everything up-to-date
但是,如果我查看我的源代码和裸仓库中的源代码,我的更改不存在。
如何将两个代码(一个没有 git 和另一个跟踪 git)合并到同一个裸存储库中以启动共享版本控制?
您可能会从@VonC 或@torek 那里得到一个绝妙的答案,但在我的脑海中,一种可能性是从您的 Git 版本化代码创建一个新分支,然后将其用于合并.在这个新分支中,您可以用您朋友修改过的文件覆盖您的文件。因此,如果您当前的分支是 master
,您可以执行以下步骤:
git checkout master # switch to 'master' branch
git checkout -b merge_branch # create 'merge_branch' from 'master'
cp -r /path/to/friend/ /path/to/you/ # copy friend's files into merge branch
git commit -m 'changes from friend' # commit this friend's work
git checkout master # back to the 'master' branch
git merge merge_branch # merge with friend's work
您现在可能会遇到大量冲突,但至少可以在 Git 内处理。我还应该提到,这只有在您的朋友具有相同或几乎相同的项目文件结构时才有效。如果您的朋友有位于不同位置或名称不同的文件,那么此方法将不起作用。
第 1 步: 假设您的朋友 git init --bare
创建了一个裸仓库。在此处复制您朋友的更改。此目录在此处充当共享中央存储。
第 2 步: 确定第 1 步是否完成后,在完成本地提交后执行以下操作:
1. git pull origin <branch> --> At this point you must see if there are new files/changes
2. git merge <branch> --> At this point you must see conflicts and modifications
3. git push origin <branch>
我正在和另一个程序员一起开发代码。因为一开始我不得不在不修改现有代码的情况下添加新模块,所以我复制了其他程序员的源代码并开始开发我的。因为我总是使用 git,所以我设置了一个 git 存储库并执行了一些提交。
现在另一个程序员修改了一部分代码,我也不得不修改一些我一开始不应该修改的部分。因此现在的情况是这样的:
- 我有一个包含修改文件和新文件的本地 git 存储库
- 另一个程序员有一个文件夹(没有git)包含修改过的文件
我们希望合并我们的修改并开始使用 git。我尝试使用他的代码作为起点(即他之前未跟踪的文件夹中的 git --bare
)在共享文件夹中创建一个裸仓库。然后我使用 git remote add origin /path/to/local/bare/repo
将这个 repo 添加到我的远程命令中。然后我尝试使用 push origin master
推送我的更改(可能包含冲突),但我收到以下消息:
Everything up-to-date
但是,如果我查看我的源代码和裸仓库中的源代码,我的更改不存在。
如何将两个代码(一个没有 git 和另一个跟踪 git)合并到同一个裸存储库中以启动共享版本控制?
您可能会从@VonC 或@torek 那里得到一个绝妙的答案,但在我的脑海中,一种可能性是从您的 Git 版本化代码创建一个新分支,然后将其用于合并.在这个新分支中,您可以用您朋友修改过的文件覆盖您的文件。因此,如果您当前的分支是 master
,您可以执行以下步骤:
git checkout master # switch to 'master' branch
git checkout -b merge_branch # create 'merge_branch' from 'master'
cp -r /path/to/friend/ /path/to/you/ # copy friend's files into merge branch
git commit -m 'changes from friend' # commit this friend's work
git checkout master # back to the 'master' branch
git merge merge_branch # merge with friend's work
您现在可能会遇到大量冲突,但至少可以在 Git 内处理。我还应该提到,这只有在您的朋友具有相同或几乎相同的项目文件结构时才有效。如果您的朋友有位于不同位置或名称不同的文件,那么此方法将不起作用。
第 1 步: 假设您的朋友 git init --bare
创建了一个裸仓库。在此处复制您朋友的更改。此目录在此处充当共享中央存储。
第 2 步: 确定第 1 步是否完成后,在完成本地提交后执行以下操作:
1. git pull origin <branch> --> At this point you must see if there are new files/changes
2. git merge <branch> --> At this point you must see conflicts and modifications
3. git push origin <branch>