gitのよく使うコマンド

以下は、Gitでよく使われるコマンドとその説明です。

基本操作

1. git init

リポジトリを初期化します。新しいGitプロジェクトを始めるときに使用します。



2. git clone <repository URL>

リモートリポジトリをローカルに複製します。



3. git status

現在のブランチの状態を確認します。変更されたファイルやステージングされていないファイルを表示します。



4. git add <file>

ファイルをステージングエリアに追加します。git add .を使うとすべての変更を追加できます。



5. git commit -m "message"

ステージングエリアの変更をコミット（確定）します。-mオプションでコミットメッセージを追加します。



6. git push <remote> <branch>

ローカルの変更をリモートリポジトリにプッシュします。



7. git pull <remote> <branch>

リモートリポジトリの変更をローカルに取り込みます。



8. git branch

ブランチの一覧を表示します。-aオプションでリモートブランチも表示します。



9. git checkout <branch>

指定したブランチに切り替えます。-bオプションをつけると新しいブランチを作成して切り替えます。



10. git merge <branch>

他のブランチを現在のブランチに統合します。




リモート操作

11. git remote -v

設定されているリモートリポジトリのURLを表示します。



12. git fetch <remote>

リモートリポジトリの最新の変更を取得します（ローカルには適用されません）。



13. git rebase <branch>

現在のブランチを他のブランチの上に再適用します。




差分確認

14. git diff

作業ツリーとステージングエリアの差分を表示します。



15. git log

コミット履歴を表示します。--onelineオプションで簡易表示が可能です。



16. git show <commit>

指定したコミットの内容を表示します。




リセットと修正

17. git reset <file>

ステージングエリアからファイルを削除します。



18. git reset --hard <commit>

指定したコミットにリセットし、作業ツリーもリセットします。



19. git revert <commit>

指定したコミットを打ち消す新しいコミットを作成します。



20. git stash

作業ツリーの変更を一時的に退避します。



21. git stash pop

退避した変更を適用します。




その他

22. git tag <tagname>

コミットにタグを付けます。



23. git config --global user.name "Your Name"

Gitの設定を行います（例: ユーザー名）。



24. git config --global user.email "youremail@example.com"

Gitの設定を行います（例: メールアドレス）。



25. git clean -f

Gitの管理外のファイルを削除します。




必要に応じて詳細な使用方法をお教えしますので、気軽に聞いてください！

以下のスクリプトは、踏み台サーバーと開発サーバーのパスワードを入力できるように対応しています。sshpass を利用して、パスワードを渡せるようにします。


---

必要な準備

1. sshpass のインストール
以下のコマンドでインストールしてください（OSに応じて異なる場合があります）。

sudo apt-get install sshpass  # Ubuntu/Debianの場合
sudo yum install sshpass      # CentOS/RHELの場合




---

パスワード対応のスクリプト

#!/bin/bash

# 引数の確認
if [ "$#" -ne 3 ]; then
    echo "使用方法: $0 <転送するファイル> <踏み台サーバーパスワード> <開発サーバーパスワード>"
    exit 1
fi

# 転送するファイル
LOCAL_FILE="$1"

# パスワード
JUMP_SERVER_PASSWORD="$2"
DEV_SERVER_PASSWORD="$3"

# 転送ファイルの存在確認
if [ ! -f "$LOCAL_FILE" ]; then
    echo "エラー: ファイル '$LOCAL_FILE' が存在しません。"
    exit 1
fi

# サーバー情報
JUMP_SERVER="user@jump.example.com" # 踏み台サーバー
DEV_SERVER="dev_user@dev.example.com" # 開発サーバー
TEMP_PATH="/tmp"                   # 一時保存先（踏み台サーバーのパス）
FINAL_PATH="/path/to/remote/destination/" # 開発サーバーの保存先

# Step 1: VMから踏み台サーバーに転送
echo "ステップ1: ファイルを踏み台サーバーに転送中..."
sshpass -p "$JUMP_SERVER_PASSWORD" scp "$LOCAL_FILE" "$JUMP_SERVER:$TEMP_PATH"
if [ $? -ne 0 ]; then
    echo "エラー: 踏み台サーバーへの転送に失敗しました。"
    exit 1
fi

# Step 2: 踏み台サーバーから開発サーバーに転送
echo "ステップ2: ファイルを開発サーバーに転送中..."
sshpass -p "$JUMP_SERVER_PASSWORD" ssh "$JUMP_SERVER" "sshpass -p \"$DEV_SERVER_PASSWORD\" scp $TEMP_PATH/$(basename $LOCAL_FILE) $DEV_SERVER:$FINAL_PATH"
if [ $? -ne 0 ]; then
    echo "エラー: 開発サーバーへの転送に失敗しました。"
    exit 1
fi

echo "ファイル転送が正常に完了しました。"


---

使用方法

1. スクリプトを保存して実行権限を付与します。

chmod +x transfer_with_password.sh


2. スクリプトを実行して、必要な情報を渡します。

./transfer_with_password.sh /path/to/local/file.txt "jump_server_password" "dev_server_password"




---

出力例

成功時

ステップ1: ファイルを踏み台サーバーに転送中...
ステップ2: ファイルを開発サーバーに転送中...
ファイル転送が正常に完了しました。

エラー時（例: パスワードが間違っている場合）

ステップ1: ファイルを踏み台サーバーに転送中...
エラー: 踏み台サーバーへの転送に失敗しました。


---

注意点

1. セキュリティ上の注意
スクリプト内にパスワードを含む場合、第三者に見られないように十分に注意してください。ファイルのアクセス権限を適切に設定してください。

chmod 700 transfer_with_password.sh


2. sshpass のインストールが必要
事前にインストールを済ませてください。


3. 改善案
パスワードをスクリプト実行時にプロンプト入力で受け取る方法もありますが、利便性とのトレードオフになります。必要であれば対応可能です。