0.0
No commit activity in last 3 years
No release in over 3 years
GitFriendly currently contains two commands that make working with remote branches easier in git.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 1.2
>= 0
 Project Readme
git-friendly
============

GitFriendly currently contains two commands that make working with remote branches easier in git.


git-publish
-----------
So, you've been working happily on feature_branch, and now you've come to the point where you'd like to
share your work with others. But you can never remember the series of arcane commands to coerce git into
publishing your branch to a remote. You try `git push`, but that doesn't do anything yet.

Enter git-publish.

Example:
  $ git publish remote_name [branch_name]

remote_name is the name of the remote you'd like to publish to. You need to have configured this remote
            already, configuring a new remote is beyond what git-publish is currently capable of doing          
            for you. Luckily, adding a new remote is not really that hard.

branch_name is optional. If you omit it, git-publish will assume you want to publish the currently 
            checked out branch. So, if you aren't working on the branch you'd like to publish, add 
            it here.

Here's what'll happen next:
  $ git publish remote_name [branch_name]
  >> Publish branch branch_name to remote_name ? [Y/n]  

If you hit enter, or y, or Y, or anything that isn't the letter n (n stands for "no"), then it'll go
ahead and do this:

  git push #{remote_name} #{branch_name}:refs/heads/#{branch_name}"
  git fetch #{remote_name}"
  git config branch.#{branch_name}.remote #{remote_name} 
  git config branch.#{branch_name}.merge refs/heads/#{branch_name}"

From then on, you'll be able to push and pull as you'd expect.

git-follow
----------
So, someone just sent you an IM that says, "hey, I published that stuff on a branch, it's called
stuff_im_workin_on". You'd like to set up a tracking branch, but maybe you'd rather it be called
"new_feature_from_josh" locally. git-follow to the rescue!

Examples:
  $ git follow remote_name/branch_name
  $ git follow https://github.com/jaw6/reponame/tree/stuff_im_workin_on
  $ git follow branch_name              # will assume remote = 'origin'

Note that if you only provide a branch name, and it has slashes in it (like, "feature/branch_name"),
then git-follow will assume everything before the first slash is the remote_name (eg, "feature"). So, if
branch_name has slashes, you should probably explicity provide a remote_name. But don't worry if you
forget, because...

Here's what'll happen next:
  >> What remote/branch should be tracked?  [remote_name/branch_name]  
  >> What should it be called locally?      [branch_name]  

git-follow will show you the assumptions it's made, and allow you to override them. If you'd like the
branch to be called something else locally, you can tell it, and it'll do the right thing. If the
assumptions are correct, hit your enter key twice, and you'll be on your merry way.

And then this will happen in the background:

  git fetch #{remote_name}
  git branch --track #{local_branch_name} #{remote_name}/#{branch_name}
  git checkout #{local_branch_name}



Do keep in mind
---------------
git-friendly is inspired by the fantastic git_remote_branch gem.

If you like working with remote branches so much, you should also check out Aanand Prasad's fantastic
git-up (https://github.com/aanand/git-up), which honestly has inspired quite a bit of what git-friendly
is trying to do.

Also: I might not actually know what I'm doing.