Must I still keep my 3rd party library binaries in source control?

Yes you can! The current NuGet workflow has always been to commit the Packages folder into source control. The reasoning is that it matches what developers typically do when they don’t have NuGet: they create a ‘Lib’ or ‘ExternalDependencies’ folder, dump binaries into there and commit them to source control to allow others to … Read more

Git: merge only the changes made on the branch

This article advises to instead of merging two branches, you would rebase them where git would only rebase non duplicate commits. But instead of cherry-picking, you might consider just rebasing the branch: rebase –onto release B bug where release is the release branch and bug is the bug branch. You then get something like C’—D’ … Read more

Prevent Git from changing permissions on pull

One config setting that might help here is core.sharedRepository, presented in the blog post “Preserving Group Write on Git Objects in a Collaborative Repository”: The solution turned out to be fairly straightforward. In the file .git/config, I added a line that read: “sharedRepository = group“, like so: [core] repositoryformatversion = 0 filemode = true bare … Read more

How do I synchronise two remote Git repositories?

Git branches do not have “heads” in the Mercurial sense. There is only one thing called HEAD, and it’s effectively a symlink to the commit you currently have checked out. In the case of hosted repositories like GitHub, there is no commit checked out—there’s just the repository history itself. (Called a “bare” repo.) The reason … Read more