以下は、Gitでよく使われるコマンドとその説明です。
基本操作
- git init
リポジトリを初期化します。新しいGitプロジェクトを始めるときに使用します。
- git clone
リモートリポジトリをローカルに複製します。
- git status
現在のブランチの状態を確認します。変更されたファイルやステージングされていないファイルを表示します。
- git add
ファイルをステージングエリアに追加します。git add .を使うとすべての変更を追加できます。
- git commit -m "message"
ステージングエリアの変更をコミット(確定)します。-mオプションでコミットメッセージを追加します。
- git push
ローカルの変更をリモートリポジトリにプッシュします。
- git pull
リモートリポジトリの変更をローカルに取り込みます。
- git branch
ブランチの一覧を表示します。-aオプションでリモートブランチも表示します。
- git checkout
指定したブランチに切り替えます。-bオプションをつけると新しいブランチを作成して切り替えます。
- git merge
他のブランチを現在のブランチに統合します。
リモート操作
- git remote -v
設定されているリモートリポジトリのURLを表示します。
- git fetch
リモートリポジトリの最新の変更を取得します(ローカルには適用されません)。
- git rebase
現在のブランチを他のブランチの上に再適用します。
差分確認
- git diff
作業ツリーとステージングエリアの差分を表示します。
- git log
コミット履歴を表示します。--onelineオプションで簡易表示が可能です。
- git show
指定したコミットの内容を表示します。
リセットと修正
- git reset
ステージングエリアからファイルを削除します。
- git reset --hard
指定したコミットにリセットし、作業ツリーもリセットします。
- git revert
指定したコミットを打ち消す新しいコミットを作成します。
- git stash
作業ツリーの変更を一時的に退避します。
- git stash pop
退避した変更を適用します。
その他
- git tag
コミットにタグを付けます。
- git config --global user.name "Your Name"
Gitの設定を行います(例: ユーザー名)。
- git config --global user.email "youremail@example.com"
Gitの設定を行います(例: メールアドレス)。
- git clean -f
Gitの管理外のファイルを削除します。
必要に応じて詳細な使用方法をお教えしますので、気軽に聞いてください!
以下のスクリプトは、踏み台サーバーと開発サーバーのパスワードを入力できるように対応しています。sshpass を利用して、パスワードを渡せるようにします。
必要な準備
- 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 "ファイル転送が正常に完了しました。"
使用方法
- スクリプトを保存して実行権限を付与します。
chmod +x transfer_with_password.sh
- スクリプトを実行して、必要な情報を渡します。
./transfer_with_password.sh /path/to/local/file.txt "jump_server_password" "dev_server_password"
出力例
成功時
ステップ1: ファイルを踏み台サーバーに転送中...
ステップ2: ファイルを開発サーバーに転送中...
ファイル転送が正常に完了しました。
エラー時(例: パスワードが間違っている場合)
ステップ1: ファイルを踏み台サーバーに転送中...
エラー: 踏み台サーバーへの転送に失敗しました。
注意点
- セキュリティ上の注意
スクリプト内にパスワードを含む場合、第三者に見られないように十分に注意してください。ファイルのアクセス権限を適切に設定してください。
chmod 700 transfer_with_password.sh
-
sshpass のインストールが必要
事前にインストールを済ませてください。 -
改善案
パスワードをスクリプト実行時にプロンプト入力で受け取る方法もありますが、利便性とのトレードオフになります。必要であれば対応可能です。