git - 仅合并两个不同分支的核心功能

时间:2017-06-10 16:16:49

标签: node.js git merge

所以这就是事情:

我有一个使用Express作为服务器在Node中编写的webapp项目(在master分支中,我也有一个版本的相同应用程序来构建一个node-webkit桌面应用程序(在{{ 1}}分支)。

两个分支之间的差异只是少数主要位于目录根目录的文件。

所以这里对每个分支的内容大致了解:

nwjs-sdk分支:

master

├── package.json ├── node_modules/ ├── public │   ├── css │   │   ├── cassette.css │   │   └── style.css │   ├── data │   │   └── metadata.json │   ├── index.html │   ├── js │   │   ├── cookie-monster.js │   │   ├── jquery-3.2.1.min.js │   │   └── mixtape.js │   └── tracks ├── README.md ├── readTracks.js └── server.js 分支:

nwjs-sdk

基本上主要区别在于快递服务器已经消失,而├── app │   ├── css │   │   ├── cassette.css │   │   └── style.css │   ├── data │   │   ├── metadata.json │   │   └── tracks.json │   ├── index.html │   ├── js │   │   ├── jquery-3.2.1.min.js │   │   └── mixtape.js │   ├── main.js │   ├── package.json │   ├── tracks │   └── uploads ├── package.json ├── readTracks.js └── writeID3.js 目录将名称更改为public/

我的应用的核心功能位于app/public/js/mixtape.jsindex.html分支app/js/mixtape.jsapp/index.html)。

我想要做的是在nwjs-sdk分支上调整核心功能,当一切准备就绪时,将该功能复制到master分支,而不会破坏node-webkit的应用程序。

关于如何使用git的任何想法?

1 个答案:

答案 0 :(得分:1)

您想要执行合并。但git真是愚蠢。如果要求它合并两个历史记录,一个没有公用文件夹,另一个记录具有公用文件夹,则合并的历史记录将包含一个公用文件夹。 app文件夹可以说相同的参数。因此,在合并之后,您应该会看到两个文件夹。相反,您要引导git

git checkout master;
git merge --no-commit nwjs-sdk;

这将导致git在进行合并提交之前暂停。此时,您应该按照您希望的方式移动文件。 (git&#t;不能为你解决这个问题)。如果您对文件的外观感到满意,则只需进行常规提交即可。由于您创建了新的历史记录,因此您可以随时返回,不必担心在以下说明中丢失某些内容。

# Un-stage the changes git was preparing to commit
git reset

# Use git rm to stage the removal of old files (you may want to read up on this command, perhaps try --dry-run)
git rm -r foo ...

# Use git add to stage the new files
git add app ...

# Package everything in the stage into your merge commit
git commit