0

I would like some automated method to do a fetch from our remote origin server. So perhaps every time I switch branches git would automatically do a fetch on all branches from origin before the switch... this way when I move from a local "fix branch" to master it would tell me that my master is behind origin master.

Is this possible? A more detailed reason for my requirement is below if you need to know why I want this.

Thanks guys!

I work in a team of developers. When I add a change to our origin/master branch I also upload that change to our FTP server (we have not yet setup git on our server)

If I create a "fix branch" and make changes to a file... Then I want to get these files live and into master. If I simply merge the changes in my local file into my local master without a fetch this could cause problems. if I forget to bring in changes from our origin prior to upload the file I may be uploading the file with missing revisions from origin. (naughty I know)

Also I would like to be aware of any updates in the master as soon as possible so that I can incorporate them into my "fix branch"

Zoe
  • 27,060
  • 21
  • 118
  • 148
user1002794
  • 123
  • 1
  • 11

3 Answers3

5

One option is to use a git alias:

git config --global alias.co "!f() { git fetch && git checkout $1; }; f"

If you use the alias like git co <branch>, it'll do a fetch before checkout. (Thanks to Git alias with positional parameters for demonstrating how to do this)

Community
  • 1
  • 1
Ryan Biwer
  • 324
  • 4
  • 14
1

Git doesn't have any built-in scheduling features. You'll have to use whatever your operating system provides: cron or Windows Task Scheduler or write a batch file to sleep, fetch, sleep, fetch, or whatever.

Dewayne Christensen
  • 2,084
  • 13
  • 15
0

A cron job makes sense here, but I bet you could also write your own client-side git hook to do this for you. It would fire off a script whenever its corresponding git command gets executed. Consider, for example, the post-checkout hook which is invoked whenever you run a git checkout.

http://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

Emily Xie
  • 173
  • 1
  • 8