はじめに
gitは分散バージョン管理システムです
集中型および分散型:集中型には中央サーバーがあり、ネットワーク操作が必要です。分散、誰もがリポジトリを持っています
1. gitをインストールします
-
インストールが完了したらgit->ダウンロードgit bashをダウンロードし、openはコマンドラインです(インストールが成功したことを示します)。
-
コマンドラインで次のように入力します
引号内部填自己信息
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
2.リポジトリを作成する
リポジトリは、倉庫、英語名としても知られていますrepository
使用する
Gitには、作業領域、一時領域、バージョンライブラリの3つの領域があります。ワークスペースは追加後に一時記憶域に入り、一時記憶域内のファイルはコミット後にリポジトリに入ります
1.追加
注:次のファイル名には接尾辞が付いています
git add "文件名"
2.提出する
注:送信とは、一時ストレージ領域内のすべてのファイルをリポジトリに送信することです
git commit -m "操作名称"
3.ステータスを確認する
git status
4.ファイルの内容を表示する
cat "文件名"
5. gitログを表示する
git log
例:ランダムに生成されるコミットの後にバージョン番号が続く
commit 980993de744a8886692ed79fc7f4cdd00ec15959 (HEAD -> master)
Author: zouyou <>
Date: Sat Apr 11 14:35:04 2020 +0800
update commit
commit ea799348f2b1ccc7d046f8bd61c6b193b79bdc18
Author: zouyou <>
Date: Sat Apr 11 14:33:07 2020 +0800
git tracks changes
-ロールバックバージョン:
- HEADを使用
git reset --hard HEAD^ HEAD^:上个版本 HEAD^^:上上版本
- バージョン番号を使用して、最初のいくつかの番号を書きます
git reset --hard ea799348f
バージョン番号を忘れた場合は、reflogを使用して、ロールバックの有無に関係なく、履歴の変更を表示できます。
git reflog
6.ファイルの変更を表示する
git diff
7.変更を元に戻す
- 作業領域の変更を元に戻すことは、ファイルを直接操作して変更を元に戻すことと同じです。
git restore 文件名
- 一時記憶域の送信をキャンセルして作業域に戻りますが、ファイルはまだ変更されています。ファイルの変更をキャンセルするには、1ステップを繰り返します
git resore --staged 文件名
8.ファイルを削除する
- ワークスペースとバージョンライブラリを同時に削除するには、ワークスペースを手動で削除します。。以下は、リポジトリを削除することです
git rm 文件名
- 誤ってワークスペースファイルを削除しましたが、リポジトリにアップロードされており、リポジトリから復元できます
git checkout 文件名
9.リモートウェアハウス:github
- githubにリポジトリを作成し、sshコードまたはhttpsアドレスを覚えてください
- 以下を入力してリモート接続を作成します。アカウントパスワードが入力されます
$ git remote add origin (ssh码)/(hhtps)
- ファイルをgithubにアップロードします
$ git push -u origin master
注:リモートライブラリは空であるため、最初にmaster
ブランチをプッシュしたときに、-u
パラメーターを追加すると、Gitはローカルmaster
ブランチコンテンツのリモートの新しいmaster
ブランチをプッシュするだけでなく、ローカルmaster
ブランチをリモートmaster
ブランチに関連付けます将来的にプッシュまたはプルするときに、コマンドを簡略化できます。
アップロードが完了したら、ローカルコミットが行われている限り、次のコマンドを使用できます。
git push origin master //这里与上面是差不多一样的语法
概要:リモートライブラリを関連付けるには、まずライブラリをリモートで作成し、SSHコードを覚えてから接続します git remote add origin ssh码
アップロード:アップロード初めてgit push origin -u master
、それは追加しない-u
アップgit push origin master
これらのコマンドでは、originは実際にはリモートウェアハウスの名前であり、通常はoriginと名付けられています
- リモートリポジトリからローカルへのクローン
最初にgithubでリポジトリを見つけてそのsshコードをコピーし、git bashでコマンドラインを入力します
git clone ssh码
注:どのフォルダーで開かれたgit bashは、どのフォルダーの下に複製されます。
10.支店管理
1.支店紹介
ブランチは、システムの開発バージョンと同様に実装でき、完了後にトランクにプッシュされます。これは安定したシステムです。次のように、2つのブランチはトランクにマージされます
gitでは、master
ブランチはトランクです。最初は、master
このメインラインをhead
指しmaster
、を指しhead
ているため、現在のポイントへのポインタとして機能し、トランクまたはブランチを指すことができます。
ブランチを表示、すべてのブランチを表示、現在のブランチの前に*があります
git branch
2.ブランチの作成
ブランチを作成dev
し、そのブランチに切り替える-b
の役割を作成してスイッチすることです
git checkout -b dev
等价于
git branch dev //创建分支dev
git checout dev // 切换到分支dev
注:各ブランチの作業領域、ステージング領域、およびバージョンライブラリは独立しており、ブランチを切り替えると異なります。
Gitはブランチの多用を奨励します:
ブランチを表示:git branch
ブランチを作成します。git branch
ブランチを切り替える:git checkout
またはgit switch
作成+スイッチブランチ:git checkout -b
またはgit switch -c
ブランチを現在のブランチにマージします。git merge
ブランチを削除します。git branch -d
分岐図を表示します。git log --graph
- ファイルの競合
この場合、2つのブランチをマージすることはできず、手動で解決する必要があります。
$ git merge feature1
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.
git status
競合するファイルを表示することもでき、競合するファイルを開くとマークが表示されます。
Gitはを使用して<<<<<<<
、さまざまなブランチのコンテンツ=======
を>>>>>>>
マークします
3.バグブランチ
ブランチdevで作業が行われているときに、突然(トランクなどで)バグが修正されるため、開発者が実行している作業を最初に非表示にし、バグを最初に修正する必要があります。Gitにはstash
、現在の作業サイトを「保存」して、後でサイトを復元した後も作業を続行する機能も用意されています。
git stash //可以将在暂存区的文件(还未提交)隐藏,使用status也看不到
stashで隠されたものをクエリできます
git stash //=>例如:stash@{0}: WIP on dev: f52c633 add merge
マスターバグを修正した後、開発サイトを復元します。
git stash aplly //对现场进行恢复,此时stash里还有,需要进一步
git stash drop //对stash里的东西删除
同时还可以从stash里一步步恢复:git stash apply stash@{0}
等价于一句话
git stash pop
注:devは元々マスターのブランチなので、devにはトランクが修正したばかりのバグがある可能性があります。そのため、gitにはバグの修復とレプリケーションを実装する機能があります。これは導入でき、ブランチのバグを解決してトランクにコピーできます
git cherry-pick <版本号>
这里的版本好就是刚刚在主干修复bug后commit之后的版本号
新しい機能を開発するには、バグブランチと同様に、新しいブランチを作成するのが最善です。
マージされていないブランチを破棄したい場合は、git branch -D
強制的に削除できます。
4.リモート連携
リモートライブラリの情報を表示するには、次を使用します。
git remote //通常远程库是origin
git remote -v
次のように、クロールとプッシュのアドレスを返すこともできます。
origin https://github.com/zy116/first-blog.git (fetch)
origin https://github.com/zy116/first-blog.git (push)
-プッシュブランチ
git push origin dev //推送分支
git push origin master //推送主干
しかし、ローカルブランチをリモートにプッシュする必要はないので、どのブランチをプッシュする必要があり、どのブランチをプッシュしない必要がありますか?
master
ブランチはメインブランチであるため、常にリモートと同期する必要があります。dev
ブランチは開発ブランチであり、チームのすべてのメンバーがブランチで作業する必要があるため、リモートと同期する必要もあります。- バグブランチはローカルでバグを修正するためにのみ使用されるため、ボスが毎週修正したバグの数を確認したくない限り、リモートにプッシュする必要はありません。
- 機能ブランチがリモートにプッシュされるかどうかは、小さなパートナーと一緒に作業しているかどうかによって異なります。
つまり、Gitでは、気分によっては、ブランチがプッシュされているかどうかにかかわらず、ブランチを非表示にしてローカルで再生できます。
-ブランチをつかむ
通常でmaster
かつdev
人は彼らの枝が押し上げられる置いたときの枝は、あなたがしたい場合は、masterブランチを見ることができます別のクローンの下、自分の変更を推進しているdev
ブランチ上で開発、我々はローカルブランチにリモートを確立する必要があります
git switch -c dev origin/dev
他の人が何かを押すと、あなたも押す必要があり、現時点では衝突があります。他の人の最新の提出が、プッシュしようとした提出と矛盾しています。
このとき、git pull
操作を求めるメッセージが表示されますが、エラーが表示されます。
ローカル指定する必要がdev
支店やリモートorigin/dev
、リンクブランチを設定dev
し、origin/dev
リンクを
git branch --set-upstream-to=origin dev
もう一度引く
git pull
この時点でプルは成功し、競合ファイルでマークされます。競合ファイルは手動で解決する必要があります
したがって、複数人による共同作業の作業モードは通常、次のようになります。
- まず、
git push origin <branch>
独自の変更をプッシュすることができます。 - プッシュが失敗した場合は、リモートブランチがローカルブランチよりも新しいため、最初
git pull
にマージを試みる必要があります。 - 合併に矛盾がある場合は、矛盾を解決してローカルで提出してください。
- 競合がないか、競合が解決し
git push origin
たら、pushを使用して成功できます。
git pull
プロンプトが表示された場合no tracking information
、ローカルブランチとリモートブランチの間のリンク関係は作成されていません。コマンドを使用してくださいgit branch --set-upstream-to origin/
。
まとめ:
- リモートライブラリ情報を表示します
git remote -v
。 - 新しく作成されたブランチがリモートにプッシュされない場合、他の人には見えません。
- ローカルからブランチを
git push origin branch-name
プッシュします。プッシュが失敗した場合は、最初git pull
にリモートの新しいサブミッションを取得します。 git checkout -b branch-name origin/branch-name
ローカルでリモートブランチに対応するブランチを作成し、ローカルブランチとリモートブランチに同じ名前を使用します。- ローカルブランチとリモートブランチ間の関係を確立します
git branch --set-upstream branch-name origin/branch-name
。 - リモートからブランチをフェッチして使用し
git pull
ます。競合がある場合は、まず競合を処理する必要があります。