所以这就是事情:
我有一个使用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.js
(index.html
分支app/js/mixtape.js
和app/index.html
)。
我想要做的是在nwjs-sdk
分支上调整核心功能,当一切准备就绪时,将该功能复制到master
分支,而不会破坏node-webkit的应用程序。
关于如何使用git的任何想法?
答案 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