Hello,
I'm pretty new to Git (used to work with SVN) so I might be using it the wrong way but here is the issue:
Problem is, I can't figure out how to ignore specific files for a branch but not another!
Ex: I have added a new plugin in the Plugins/Android folder in the Android branch. But I also have fixed some nasty issue in the common part. I want to push and merge to the clean branch so when iOS workers will pull from the clean branch they will have the fix but not the plugin. Android workers need to have the plugin thought. I would like the Plugins/Android folder to be ignored (not pushed) when I will merge toward the clean branch, but actually pushed when I'll push toward the Android remote branch.
From my search, solutions are either to manually remove files on the clean branch after pushing (waste of time and prone to mistakes) or use a .gitignore. But a .gitignore seems to work across the whole repository so my platform-branches will ignore them too.
Am I missing something ? Please enlighten me on this !
The .gitignore file being tracked like any other is precisely what allows it to be different in different branches. Whenever you check out a branch, the .gitignore will be replaced by the one in that branch and the right version will be used when committing changes. 1.: You create a .gitignore in your working folder and commit it to the branch you have currently checked out. 2.: You switch to another branch. (The .gitignore file will be gone from your working folder.) 3/a.: You create a new, different .gitignore in your working folder and commit it to the branch you have currently checked out. OR 3/b.: Cherry-pick the commit from step 1, make changes to the .gitignore and commit them. 4.: Repeat 2 and 3 as desired for other branches. If you create branches after this is done, the new branch will, at the beginning, have the same .gitignore as the parent branch, but you can make edits and commit them, as needed.
Thank your for clarifying this. I'll give it a try and come back to mark your answer as the solution.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You might have more luck attempting to use subtrees or submodules (I've never used either, so I may be way off). You're going to find that .gitignore won't just prevent those files from being pushed to your core branch, it will also prevent them from being committed to your platform branch.
You might have more luck finding a Unity developer forum and asking for advice about how similar developers handle versioning of platform-specific code.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The right choice is to use a .gitignore. It can contain different things in the different branches.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
From the topics I've read across the web there is no way to create differents .gitignore files for each branch since they all are files tracked by Git, thus one change override the other. Can you give me some details about how you achieve this please?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Please see more detailed answer above.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Spend the day sharpening your skills in Atlassian Cloud Organization Admin or Jira Administration, then take the exam onsite. Already ready? Take one - or more - of 12 different certification exams while you’re in Anaheim at Team' 25.
Learn more
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.