リモートリポジトリを介してプロジェクトをデプロイすると、プロジェクトのすべてのビットを柔軟に管理できます。バグ修正、機能の更新、ファイルの削除、チームワーク、オープンソースの貢献、コードのデプロイなどが、Gitに関する深い知識を持ってすぐに利用できるようになりました。
それで、あなたはGitを使っていますが、もっと知りたいですか?プロジェクトのバージョン管理を簡単にする、より高度なGitのヒントをいくつか紹介します。
Gitブランチ
Gitブランチは、マスターブランチに直接プッシュすることを防ぎます。開発者のチームでプロジェクトを管理する場合に役立ちます。必要な数のGitブランチを作成し、後でそれらをマスターブランチにマージできます。
Gitブランチを作成する
Gitブランチを作成するには、次を使用します。
git branch branch_name
Gitブランチに切り替えます
使用する チェックアウト Gitブランチに切り替えるには:
git checkout branch_name
ブランチに切り替えた後、次を使用して変更をステージングできます git add --all 。次に、を使用してそれらをコミットします git commit -m 'コミット名' 指図。
ブランチとマスターを比較する
使用 git diff 指図:
git diff master..branch_name
特定のファイルを比較するには:
git diff master..testb -- main.html
2つのブランチを比較することは、ブランチをマスターと比較する方法に似ています。
git diff branch1..branch2
2つのブランチ間の特定のファイルの違いを確認するには:
git diff branch1..branch2 -- main.html
変更をリモートブランチにプッシュする
別の開発者に、ローカルブランチのファイルに加えた変更を、ライブにプッシュする前に確認してもらいたい場合があります。ローカルのGitブランチをリモートレプリカに移動して、外観を確認できるようにすることをお勧めします。
以前にという名前のローカルブランチを作成したと仮定しましょう 変更 。そのローカルブランチに切り替えて、必要なすべてのファイルを調整してから、それらをステージングしてそのブランチにコミットすることができます。
次に、これらの変更をリモートバージョンのブランチにプッシュできます。
git push origin changes
プルリクエストを使用してリモートブランチをマスターとマージする
そのため、別のプログラマーがリモートブランチの変更を監査しました( 変更 )。しかし、それをマスターブランチとマージして、ライブでプッシュしたいとします。
リモートブランチはローカルGitブランチの名前を継承することに注意してください( 変更 )。変更をマージする方法は次のとおりです。
マスターブランチに切り替えます。
git checkout master
ブランチの原点またはHEADをプルします( 変更 )それをマスターブランチとマージするには:
git pull origin changes
このマージをライブでマスターブランチにプッシュします。
git push origin master
代わりにGitマージを使用する
を使用してブランチをマスターとマージするには 行く 指図:
マスターブランチに移行します。
git checkout master
ブランチとマージします( 変更 ):
git merge changes
次に、マージをライブでマスターブランチにプッシュします。
ポータブルハードドライブが表示されない
git push origin master
必ず交換してください 変更 あなたのブランチの名前で。
マージが成功すると、次のことができます ローカルおよびリモートでブランチを削除します もう必要ない場合:
関連している: Gitでブランチの名前を変更する方法
Git Rebase
古いコミットを持つ複数のブランチがある場合は、リベースまたはリフォーカスできます 頭/参照 それらのブランチの 頭/参照 更新されたものの。
したがって、リベースは、一部のブランチを現在のブランチのベースで更新する必要がある場合に役立ちます。
ただし、リベースはワークフロー全体を混乱させる可能性があるため、特にチームで作業している場合は、頻繁に行う必要はありません。しかし、一人で作業していて、ワークフローとブランチに精通している場合、リベースをどこでどのように使用するかを知っていれば、リベースが大混乱を引き起こすことはありません。
たとえば、2つのブランチがあるとします。 branch1とbranch2。これで、しばらくの間、branch1に変更を加えていません。ただし、最近を含め、常にbranch2に変更をコミットします。
そこで、フローと一緒にbranch1を実行することにしました。したがって、branch1をbranch2にリベースするということは、branch1に、以前のコミットを無視し、branch2に対して行われた最近のコミットを継承するように指示していることを意味します。
これを行う方法は次のとおりです。
放棄されたブランチ(branch1)に切り替えます。
git checkout branch1
次に、branch1を更新されたbranch2にリベースします。
git rebase branch2
Gitスカッシュ
Gitスカッシュを使用すると、複数のコミットを1つにマージできます。あなたが実行するときに役立ちます git commit 1回の更新で何度も。実用的な例は、単一の機能の各バグ修正またはコードリファクタリングに個別のコミットがある場合です。
ただし、それらはすべて同じ目的を持っているため、付随するものと一緒にHEADコミットをプッシュしたくない場合があります。推奨されるアプローチは、コミットを追跡するときの混乱を避けるために、それらを1つに押しつぶすことです。
コミットを潰す最良の方法は、インタラクティブなリベースモードを使用することです。これをよりよく理解するには、以下の例を見てください。
この例では、5つのバグ修正があると想定しています。そして、それらのそれぞれにコミットがあります。これらの5つのコミットを1つにまとめる方法は次のとおりです。
走る git reflog コミットのハッシュコードを表示するには:
git reflog
この場合の結果は次のとおりです。
今、あなたの目的は、最後の5つのコミットを押しつぶすことです。 最初の修正 まで 5番目の修正 。
これを行うには、すぐ下のコミットのハッシュコードをコピーします 最初の修正 (( 0a83962 )。次にを押します NS 終了するには reflog 。
今すぐ実行 git rebase --interactive そのハッシュに。
git rebase --interactive 0a83962
次に、Gitは次のようなインタラクティブなリベースファイルを開きます。
コミットを潰すために、 最初の修正 、 交換 選ぶ と NS 他の各コミットについて:
このファイルを保存して閉じます。
次に、押しつぶされたコミットの名前を変更するための別のファイルが開きます。
YouTubeでチャンネル登録者をどのように見ていますか
それらをクリーンアップし、押しつぶされたコミットの優先名を入力します。
そのファイルを保存します。次にそれを閉じると、ターミナルに成功メッセージが表示されます。
ノート: インタラクティブファイルは端末内で開くことができます。ただし、Windowsを使用している場合は、押しつぶしを簡単にするために、ターミナルでファイルをお気に入りのテキストエディタでグローバルに開くように強制することをお勧めします。
これを行うには、コマンドラインを開いて次のコマンドを実行します。
git config --global core.editor ''path to choice text editor' -n -w'
GitフォークとGitクローン
フォークとクローン作成は、Gitでは2つの異なる用語です。リポジトリはすでに存在しているため、フォークすることはできません。ただし、他の人のリポジトリをフォークして、後でクローンを作成することはできます。
リポジトリをフォークするということは、誰かのリポジトリのコピーを取得して自分のものにすることを意味します。そのリポジトリのコピーを取得したら、ローカル変更用のgitリポジトリと同じようにクローンを作成できます。
方法は次のとおりです リモートリポジトリのクローンを作成する GitHubで、ローカルディレクトリへのダウンロードを開始します。
git clone https://github.com/username/repository_name.git/
ファイルをデフォルトの状態に復元する
最後のコミット後にファイル内の変更をクリアしたい場合は、 git restore 指図:
git restore filename
コミットを修正する
ステージング中に一部のファイルに変更を加えるのを忘れた場合は、前のコミットにフォールバックできます。
忘れたファイルに変更を加えます。次に、 git amend コミットを確認するには:
git add file_forgotten
git commit --amend
ファイルのステージングを解除する
を使用して、コミット用にステージングした特定のファイルを削除できます rmに行く 指図:
git rm --cached filename
一度に複数のファイルを削除することもできます。
git rm --cached file1 file2 file3 file4
免除するファイルには、関連するファイル拡張子を忘れずに追加してください。たとえば、プレーンテキストファイルは次のようになります。 filename.txt 。
関連している: Gitをクリーンアップして追跡されていないファイルを削除する方法
Gitリセット
使用する gitリセット コミットのためにステージングしたすべてのファイルを一度に削除する場合に役立ちます。
git reset
ただし、Git reset HEADは、ブランチのHEADを作業ツリー内の特定のコミットにポイントします。たとえば、現在のコミットをまだプッシュしていない場合は、最近プッシュされたコミットにフォールバックできます。
git reset --soft HEAD~1
交換 - 柔らかい と - 難しい 現在のコミットをすでにプッシュしている場合:
git reset --hard HEAD~1
元に戻す
とは異なり リセット 指図、 元に戻す コミット履歴の整合性を維持します。エラーやバグのためにコミットを修正したい場合に便利です。
ターゲットのコミットを放棄したり、新しいコミットを作成したりすることはありません。代わりに、そのようなコミットを削除したり名前を変更したりせずに、最近行った変更に戻ります。これは、コミットをクリーンに保つための優れた方法であるだけでなく、常にリセットするよりも安全です。
コミットに戻すには:
git revert HEAD~1
どこ HEAD〜1 作業ツリー内の特定のコミットを指します。
追跡ファイルまたはディレクトリを削除する
あなたが使用することができます git rm -f 作業ツリー内の追跡されたファイルを削除します。ただし、Gitは追跡されていないファイルをキャッシュしないため、削除できないことに注意してください。
ステージングされたファイルを削除するには:
git rm -f filename
ステージングされたフォルダーを削除するには:
git rm -r -f foldername
Gitロギング
Gitでコミットログと履歴を表示するには:
git log
特定のブランチのアクティビティをログに記録するには:
git log branch_name
関連している: gitlogを使用してプロジェクトの履歴を検査する方法
場合によっては、放棄されたコミットに戻したいことがあります。したがって、関連するコミットを含め、放棄されたコミットを表示するには、次のようにします。
git reflog
特定のブランチの参照ログを表示するには:
git reflog branch_name
Gitを使用してプロのようにプロジェクトバージョンを管理する
Gitには多くの利点があり、メインブランチのオンプレミスでファイルやフォルダーを盗むことなくプロジェクトリリースをリモートで管理できます。さらに、チームでプロジェクトを簡単に実行できます。
これまで見てきたように、Gitには探索できる多くの機能があります。ただし、これらの機能を意図的に使用するように注意してください。そうしないと、物事を壊してしまう可能性があります。そうは言っても、デモのリモートリポジトリを起動して、これらの機能を試してみることができます。
共有 共有 つぶやき Eメール Gitを使用してプログラマーのようにファイルのバージョン管理を管理するプログラマーは、ファイルバージョン管理の問題を解決するためにバージョン管理システム(VCS)を作成しました。今日のトップシステムであるGitを使用したバージョン管理の基本を見てみましょう。
次を読む 関連トピック- プログラミング
- ウェブ開発
- GitHub
- コーディングチュートリアル
Idowuは、スマートな技術と生産性に情熱を注いでいます。暇なときは、コーディングで遊んだり、退屈したときにチェス盤に切り替えたりしますが、たまに日常から離れることも大好きです。人々に現代の技術の道を示すことへの彼の情熱は、彼がもっと書くように動機づけます。
IdowuOmisolaのその他の記事ニュースレターを購読する
ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。
購読するにはここをクリックしてください