project_name/.git という名前の git オリジン リポジトリをセットアップしました。
ssh to the server, (entering ssh passwords or passphrases as I go)
mkdir project_name
cd project_name
git init
touch fabfile.py
git add fabfile.py
git commit -a -m "almost empty"
git checkout -b web
ブランチ Web をチェックアウトしたままにします。ローカル マシンに戻ります。
クローンを介してサーバーからプルし、プロジェクト ディレクトリの内容をローカル リポジトリのブランチ マスターに追加しました。これらの手順も自動化できると思いますが、ファブリックを使用せずにセットアップするだけで、別の ssh パスフレーズは必要ありません。
cd /path/to/project_name/..
git clone ssh://joe@some_server.com/var/web/project_name/.git
cd project_name
gvim fabfile.py
git add fabfile.py
git commit -a -m "fabfile edits"
今、私は布を使い始めます。以下は、git タグとブランチを管理するための私の fabfile からの抜粋です。
#Usage: fab committag brpush | fab committag push | fab push | fab tag
def committag():
"""commit chgs, tag new commit, push tags to server."""
prompt('commit descr: ', 'COM_MSG', default='new stuff')
prompt('commit name: ', 'COM_NAME', default='0.0.1')
local('git commit -a -m "%(COM_MSG)s"' % env)
local('sleep 1')
local('git tag -u "John Griessen" -m "%(COM_MSG)s" %(COM_NAME)s' % env)
local('sleep 1')
local('git push origin --tags') #pushes local tags
def brpush():
"""create a new branch, default COM_NAME, then push to server."""
prompt('new branch name: ', 'BR_NAME', default= '%(COM_NAME)s' % env)
local('git checkout -b %(BR_NAME)s' % env)
local('sleep 2')
local('git checkout master')
local('git push origin --tags') #pushes local tags
local('git push --all origin') #pushes local master and branches
def push():
"""Push existing tags and changes to server."""
local('git push origin --tags') #pushes local tags
local('git push --all origin') #pushes local master and branches
def tag(): #Call this from committag()
"""create a gpg signed tag on the local git repo tag from prompted name ."""
prompt('tag descr: ', 'TAG_MSG', default='0.0.1')
prompt('tag name: ', 'TAG_NAME', default='0.0.1')
local('git tag -u "John Griessen" -m "%(TAG_MSG)s" %(TAG_NAME)s' % env)
上記のfabfile定義を使用するには、プロジェクトディレクトリにいくつかの変更を加え、それらに関する適切なメッセージを考えて、次のようにします:
$fab committag
サーバー上でタグ付けされ、更新された変更があります。または:
$fab committag brpush
新しいブランチを作成し、サーバーを更新しました。