shellスクリプトをデバッグするときにgit pullを複数回テストする方法

2495 ワード

実際の作業では、git pullの自動更新コードを実行したり、印刷されたファイル変更情報から不要な情報をフィルタリングしたりするgitコマンドの実行を自動化するためにshellスクリプトを作成することを考えるかもしれません.
しかしshellスクリプトのテスト、デバッグでは、git pullを実行すると、ローカルウェアハウスがリモートサーバと一致して保存され、git pullを再実行すると実際にコードを更新する効果がなく、変更情報のフィルタリングが正しいかどうかは検証できません.
git pullの効果を複数回テストするには、ローカルウェアハウスコードをリモートサーバコードに遅れる必要があります.具体的な方法は以下の通りです.

方法1


先にgit checkout -b local_branch_name HEAD~2命令を実行するか、またはgit checkout -b local_branch_name commit命令を実行する.
  • HEADは現在の最新バージョンを指し、HEAD~1は1つのバージョン、つまり前のバージョンを指し、HEAD~HEAD~2と略記できる.「≪類推|類推|Essbase_Studio≫」を選択すると、ローカル・ブランチがサーバーのバージョンに遅れるバージョンを指定できます.
  • commitパラメータはgit commitのhash値であり、commitパラメータでどのコミットに戻るかを指定します.
  • この2つのコマンドの役割は、新しいブランチを作成することであり、新しいブランチのコードはすでにリモートサーバコードに遅れている
  • 次にgit pull remote_repository remote_branch_nameでコードを更新するとgit pullの更新効果が見られます.この場合、git pullコマンドのみを実行することはできません.そうしないと、次のエラーが表示されます.
    fatal: No remote repository specified. Please, specify either a URL or a remote name from which new revisions should be fetched.
    このようにpullの後、現在のローカルブランチコードは最新であり、再びpullには新しい変更はありません.pull効果を再テストする場合は、新しいローカルブランチを作成できます.
    上でgit checkoutを実行する場合は-bオプションを付けずに、先にgit checkout HEAD~2コマンドまたはgit checkout commitコマンドを実行し、実行後、現在はブランチの下にありません.gitプロンプトはgit checkout -b new_branch_nameで新しいローカルブランチを作成し、上の方法でpullを行うことができます.
    すなわち、git pullの効果を複数回テストするには、次のコマンドを実行する必要があります.具体的なパラメータ値は、実際の倉庫の値に変更します.
    $ git checkout -b local_branch_name HEAD~2
    $ git pull remote_repository remote_branch_name

    方法2


    新しいブランチを複数回作成したくない場合は、git pullを現在のローカルブランチで複数回テストしたい場合は、次の方法を参照してください.
    まずgit reset commitコマンドを実行し、commitパラメータはgit commitのhash値であり、どのコミットに戻るかを指定します.ローカルコードがロールバックされ、git statusコマンドで表示されると、まだコミットされていないファイルがいくつか表示されます.git pullを実行できない場合は、「Cannot pull with rebase:You have unstaged changes.」というメッセージが表示されます.
    次にgit add、git commitを再実行してコミットする必要があり、その後git pull remote_repository remote_branch_nameコマンドで更新できます.この場合、git pullがgit mergeを使用している場合はbranch mergeを提示し、自動的にmerge commentをポップアップし、手動で確認する必要があります.git pullがgit rebaseを使用している場合、branch mergeはプロンプトされず、merge commentを記入したり手動で確認したりする必要はありません.
    すなわち、git pullの効果を複数回テストするには、次のコマンドを実行する必要があります.具体的なパラメータ値は実際の倉庫の値に変更します.
    $ git reset commit_hash
    $ git add -A
    $ git commit -m "your commit message"
    $ git pull --rebase remote_repository remote_branch_name