2016-11-16 2 views
-1

極端な初心者ユーザーの人生を単純化したいが、Gitでファイルを共有するという課題に直面している。彼らはむしろ圧倒されています。そして、最も基本的なGitコマンドの順序でさえエラーが発生しやすいです。初心者のための基本的な使い方を許可するGitのコマンドシーケンスとは何ですか?

私は追加コマンド、コミットコマンド、プッシュコマンドを一度に基本的な作業が可能な方法で一度に実行する単一のコマンドsaveを提供したいと思います。彼らは枝に決して触れません。彼らはまれに同じファイルを編集します。

Gitと同期し、「ほとんどの時間」動作する単一のスクリプトを思い浮かべることはできますか?

多分、meldのようなマージツールをどこに統合できるかを指摘できます。私はそれがすべて非効率的だと知っていますが、少なくとも彼らは働くことができます。

残念ながら、代替案はありません(Git、better knowledge、...を置き換えてください)。

+0

Mercurial( 'hg')はGitと同じくらい能力があり、初心者にはもっと優秀です。それは普及していない(高速ではない)。 Hgは私が知っている限り、すべての同じプラットフォームで利用できますが、私がこれまで知っていることではありません。 :-) – torek

答えて

2

スクリプトにプルを追加する必要があります。そうしないと、手動でプルする必要があります。隠しファイルを追加すると、ユーザーが同じファイルに触れるようになった場合でも、より強固になります。

#!/bin/bash 

git stash 
git pull origin master 
git stash pop 
if [ $? -eq 0] 
then 
    git add -A 
    git commit -m "$1" 
    git push origin master 
else 
    echo "ERROR: Merge conflict!" 
fi 

あなたは、その後の/ usr/local/binの時にこのスクリプトを保存でき、スクリプトは名前でコミット記述に設定されます単一の引数で呼び出すことができます。

+0

Git stash、+1 .. – marcusshep

+1

'stash pop'の終了コードを確認することが重要です。競合がある場合は、「追加」、「コミット」、「プッシュ」を修正または中止する機会はありません。 –

+0

良い点。間違いなく競合がないかどうかチェックしたい場合は、ファイルがfubardになります。 – louahola

1

あなたはすべてUNIXマシンを使用していると仮定します。

これらをすべて.bash_profileに追加しましたか?

function save(){ 
    git stash; 
    # might want to replace `master` with 
    # whatever branch they are pushing to. 
    git pull origin master; 
    git stash pop; 
    git add --all; 
    git commit -m "$1"; 
    git push origin master; 
} 

このようにすれば、コマンドラインからこの簡単な機能にアクセスできます。 正しい数の引数を与えているかどうかを調べるためのチェックを書くことさえできます。 使用例:

save "did the thing I was supposed to do"; 

あなたはまた、彼らはgitのためのGUIを使用した試みることができます。

+0

プルする前に変更をコミットする必要があると思われます – Ivan

+2

'stash pop'が失敗し、関数の実装 'add'、 'commit'および 'push'がすべて無関係に実行されるとします。 –

関連する問題