Definite's Extractor

My findings on Life, Linux, Open Source, and so on.

git tips — as a supporting developer

Most of git hand book and tutorial tell how to obtain git repos, manage git repos, see what is changed, how to merge, and so on. But I haven’t found a good guide for supporting developers who need to keep track of the main development, while providing their own modification for easy merge back to trunk.

Indeed, quite a lot of tutorial already mentioned how to cooperate with others, but have you encountered the following:

  • Whenever upstream updates po files, you have to manually edit them all to resolved conflict, though you never touch it.
  • After merge, there were dozens of conflicts, though you only changed a few files before merge.
  • Finally, some folks kindly tell you that git-rebase is the way to go, but if you actually do it, there will be hundred of conflicts waiting to kill your time.

I still believe that those hand books might enlighten us about the relieves of these symptoms. providing you have sufficient time an patient to actually understand it, but I don’t.

Here are some tips:

  • Keep the latest untouched-by-you upstream commit ID in mind, suppose it is “untouched-by-me”
  • Add –rebase when using git-pull
  • If you see some conflict on the files you don’t even want to touch,
    roll back these files by

    git-checkout untouched-by-me files
  • No need to dash directly into the hell of conflicts by running git-mergetool,
    instead,

    1. Make your patch:
      git-diff untouched-by-me your-latest-touch > patch-file
    2. Reset back and get the update from upstream.
      git-reset untouched-by-me
      git-pull
    3. Apply back your patch:
      git-apply patch-file

      And yeah, now is the time you resolve conflict.

    4. Commit when done.
  • Remember to use
    git-pull --rebase

    next time.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: