1. gitの構造
コアは、各地域の図書館だけで、すべてのローカルライブラリは、リモートライブラリとして独立することができ、リモートインデックスを保存しますが、リモートのすべての内容を保存しないようにSVNのGitのバージョン管理ツールとは異なります。
構造と操作対象gitの共通コマンドを以下に示します:
2.共通の操作コマンド、特定の操作はhttps://git-scm.com/book/zh/v2を表示することができます
gitの追加:ステージング領域への作業ディレクトリからの変更を保存します
Gitはコミット:最初から地元の倉庫への変更を保存します
gitのプッシュ:リモートリポジトリにローカルリポジトリからの変更を保存
gitのクローン:リモートリポジトリローカルリポジトリにすべてのデータを保存するために地元の倉庫を作成します。
Gitは、フェッチ:ローカルリポジトリの更新にリモートリポジトリを変更します
gitのマージ:マージ別のブランチへの分岐
gitのプル:Gitは解決すべき紛争、合併、またはプロンプト競合が存在しない場合、その後、地元の支店やリモートブランチを比較し、最初のローカルリポジトリへのリモート更新を保存し、+ gitのマージフェッチ
gitのブランチ:ブランチを作成
Gitチェックアウト:ブランチ切り替え
Gitのリベース:ベースのため、Gitのマージ機能とは似ていますが、記録が明確に見えるようにレコードは、クリアされます。それはデータの損失を引き起こす可能性があるため、お勧めできません
gitの隠し場所:ちょうどリモコンのライブラリのようなあなたの仕事、その後、変更したデータを保存
gitのパッチ:変更パッチは、あなたはまた、他の人に使用することができ、最大保存することができます
Gitの元に戻す:あなたの現在の作業ディレクトリを変更し、このようなライブラリとして、コミットする指さ3回の合計をコミットし、そして今、あなたは頭を変更するには、このコマンドを使用することができ、第二コミットに基づいて開発を継続したいです
GitのSubMoule /更新を追加します。サブディレクトリが追加され、更新され、これはサブディレクトリのために、一般的であることは別のライブラリですが、私のプロジェクトは、それを参照する必要があります
3. gitのディレクトリ
我々はgitのツールは.git隠しフォルダを生成します使用する場合は、図に示すように、すべての操作は、.gitフォルダに格納されています
サブディレクトリへの参照がある場合は、モジュールのフォルダを生成するためにここになり、実際には、もう一つのポイントは、.gitフォルダを見に行くことです
します。https://blog.csdn.net/mayfla/article/details/78653396,httpsを:あなたは、詳細はリンクをご覧でき//blog.csdn.net/a19881029/article/details/42245955を
私は主に次の部分に焦点を当てて、ここで話します
(1)設定ファイル、データ、リモートとローカルの枝を保存します
(2)最新commitIDリモートライブラリとローカルライブラリ、対応するフォルダヘッドやリモコンを保存するフォルダをREFS
ログ/レフリーフォルダには、基準日最終更新リモートライブラリとローカルライブラリ、対応するフォルダヘッドやリモコンを保持しています
(3)との間の差は、フェッチとプル
フェッチ変更し、変更したレコードは、リモートライブラリをcommitID、その後、修正をマージcommitIDし、レコードを変更するローカルライブラリ
プルは、リモートライブラリとローカルライブラリをcommitIDレコードを修正し、修正します
4.ブランチを作成し、修正し、トランクにマージプロセス
(1)マスターバックボーンそれぞれ、3回更新され、A、B、C
(2)機能は、ブランチに切り替え、その後、ノードCに分岐の作成を開始します
(3)このブランチは、リモートにプッシュ、ローカルリポジトリに作成され、そのようなリモートブランチが存在することになります
gitのプッシュ
(4)あなたはこのブランチで作業するとき、Fを作成し、G 2がコミット、この時点では、リモートトランクはまた、新しいコミットDとHを提出しました。
(5)この時点で、あなたの作業を完了し、トランクにマージする必要があり、ローカルでマージする必要がある、このステップは、最新のブランチに更新することで、その後、テストに使用します
最新性を確保するために引き、その後、分岐機能に切り替え、その後、メインブランチのマスターに切り替え、その後、プッシュ、その後、テストのメインブランチにマージ
git checkout master
git pull
git checkout feature
git merge master
test the function
git push
此时本地和远程的库一致,对应的master和feature如下图所示
(6)此时分支Feature其实已经是最新的了,我们只需要把Master跟feature一样就行
切换到主干,主干合并分支,然后push
git checkout master
git merge featurer
git push
5.常用git工具
Fork操作(tortoiseGIt跟它操作类似):
git add : changes里面的stage和unstage就是保存到暂存和从暂存里面删除,如图
git commit : changes里面点击stage,然后右下角输入commit信息,然后点击commit
git push : 左边Branches里面选中对应的branch,右击push,或者直接点击左上角的push
git clone : 菜单栏选择File->Init New Respository
git fetch : 选中当前分支,点击菜单栏下方的fetch
git merge : 选中需要合并的源分支,然后选中目标分支,右击选中Merge into(比如将A合并到B,B是当前分支,然后选中A,右击Merge Into B)
git pull :类似git push,右击fast-forward pull
git branch : 点击右上角New Branch
git checkout : 左边Branches里面选中对应的branch,右击CheckOut
git stash:当你的分支有修改时,Changes里面会有提示,此时你可以点击菜单栏下方的Stash,然后保存,需要使用的时候点击左边的stashes里面选中你保存的,右击apply
git revert : 在All Commits页面,选中你需要切换的commit,右击reset 。。to here,然后选中mix或者hard
git patch : 再Changes页面里面选中修改的change然后右击Save as patch,此时你可以把change discard掉,去干别的事,也可以使用Reset..to here切换head,然后做别的事,使用patch,在菜单栏里面选中apply patch,此时要确保你的head一定要和保存patch时一致,否则会报错
git SubMoule add/update : 直接在最左边,Submodules右击
6. 小提示
当有时你不小心把你的一个文件或一个目录删掉了,你想从远程拉下来
打开命令行,定位到目录
一个文件 : git checkout a.cs
当前目录 : git checkout .