开发者

Git folder with files from two different branches

I'll just explain my scenario.

I have a folder managed with git containing a set of scripts which are automatically run. Each script have a corresponding filter file determining wh开发者_StackOverflowich files are to be run in response to different events. E.g.:

  • a.script
  • a.filter
  • b.script
  • b.filter

I have a branch containing some changes to the scripts, but we've decided for the time being to only roll them out for certain scenarios using the filters. So we'll end up with something like:

  • a.script
  • a_.script
  • a.filter
  • a_.filter
  • b.script
  • b_.script
  • b.filter
  • b_.filter

So what I need is to have the script files from the main branch, and the script files from the testing branch checked out together in one folder, with different names. I don't know when (or if) the testing branch will be merged into main, so I need to push changes to both branches. Is there any good way to solve this using git?


You already seem to have your additional or modified files in a separate branch (I’ll assume its name is testing); this branch should also contain the files from the master branch (because it was created from master, right?). Now create a third branch, e.g. local (or unified or whatever):

git checkout -b local master

Now merge your testing branch into it:

git merge testing

This should basically give you all modifications from all branches. Note that this branch is not for committing manually, you only merge either your master or your testing branch into it, commits always go to either of those branches, never to local!

This approach requires a bit of discipline because you should not commit to the local branch (unless you’re confident that you can rebase the commits to the local branch to the branch they should really go to). Also, it will look quite messed up in gitk because continued merges into a single branch tend to create some optical noise. This can be cleared up every now and then by repeating the two steps from above that will simply recreate the local branch — this is not a problem because all your changes have been committed to either master or testing.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜