27

私はgitレポを持っています。コードベースに大きな変更を加えるたびに、ターミナルに移動して一連のコマンドを実行します。

git add .
git commit -m 'some message'
git push origin master

これらは毎日同じで、プロセスは非常に退屈です。誰かがこのプロセスを自動化する方法を提案できますか?

Linux Mint 14 OS を実行しています。

4

6 に答える 6

34

これは、Bash スクリプトを使用して非常に簡単に自動化できます。

git add .

echo 'Enter the commit message:'
read commitMessage

git commit -m "$commitMessage"

echo 'Enter the name of the branch:'
read branch

git push origin $branch

read

上記のコードを.shファイルとして保存します(たとえばgitpush.sh

そして、この sh ファイルを実行可能ファイルにする必要があるため、ターミナルで次のコマンドを 1 回実行する必要があります。

chmod +x gitpush.sh

そして、この.shファイルを実行します。

実行するたびに、コミット メッセージとブランチの名前を尋ねられます。ブランチが存在しないか、プッシュ先が定義されていない場合、git はエラーを生成します。このエラーを読むために、最後のreadステートメントを追加しました。エラーがない場合、git はpushed successfullytype-of メッセージを生成します。

于 2013-05-23T08:46:53.570 に答える
12

作業を 1 日に 1 回大きなチャンクとしてコミットすることは、バージョン管理の効果的な使用法ではありません。コードベース (またはリポジトリで追跡されているその他のもの) の開発におけるステップを反映する、小規模で定期的なアトミックコミットを作成する方がはるかに優れています。

シェル スクリプトを使用するのは、おそらくやり過ぎです。ほとんどの人は、シェル エイリアスまたは git エイリアスとして、エイリアスを使用して git コマンドを自動化しています。

私の場合、シェル エイリアスを使用します。そのうちの 2 つは次のとおりです。

alias gp='git push'
alias gc='git commit'
alias gca='git commit -a'
alias gcm='git commit -m'
alias gcam='git commit -am'

だから私があなたが求めていることをすることは次のようになります:

gcam "My commit message";gp

これは多くのタイピングではなく、ほとんど退屈ではありません。私はこれと同様の git 操作を文字通り 1 日に何十回も行っています (わかっています - シェルの履歴をチェックしているからです)。

スクリプトではなく小さなエイリアスを使用する理由は、さまざまなコミット方法を柔軟に使用できるようにするためです。スクリプトを使用すると、その柔軟性が失われます。

于 2013-05-24T09:08:03.460 に答える
11

$HOME/.gitconfigまたはで、エイリアスとシェル関数を一緒に使用できます.git/config

[alias]
        newalias = "!f(){ git add . && git commit -m \"$1\"; git push origin master; };f"

そしてそれを次のように呼び出します

$ git newalias "message ..."
于 2013-05-23T09:16:25.387 に答える
11

入力するのはそれほど多くありませんが、エイリアスを使用することでプロセスを簡素化できます。

編集$HOME/.gitconfigしていくつかのショートカットを追加します。たとえばgit p、のエイリアスとして使用するにはgit push origin master、次を使用します。

[alias]
        p = push origin master

bash のような降下シェルを使用している場合は、履歴機能を使用できます。知っておくべきことはすべて、bash の man ページにあります。

エイリアスについて詳しくはこちら

補足としてgit add .、フォルダー内のすべてのファイルをステージング領域に追加するため、これはおそらく最善の方法ではありません。git add -u既にインデックスにあるファイルのみを追加するために使用することをお勧めします。

于 2013-05-23T08:56:10.347 に答える
9

Windows の最適なソリューション: 1) システムの任意の場所にテキスト ファイルを作成し、必要に応じてフィールドを変更した後、次のコードを挿入します。

git add .

git commit -m "commitMessage"

git push url master

exit

2) ファイルを保存して終了します。

3) ファイル名を に変更しますpush.sh

4) git powershell を使用してシステムのファイル ディレクトリに移動し、次のコマンドchmod +x push.shを使用してファイルを実行可能にします。

5)Windowsのスタートをクリックして検索しTask Scheduler、新しいタスクの作成を押します。

6) アクションをクリックし、push.shファイルを参照して [OK] を押します。

7) トリガーに移動し、スケジュール時間を変更します。

これで、必要に応じて自動化されたスクリプトが作成されました。

于 2019-12-17T02:43:28.490 に答える