枝管理
カドミウム#/データ/ gitrootの #gitのブランチ//現在の倉庫ブランチ・ビュー *のここでのマスター//一行だけを、どこ現在のブランチの*の数 #gitのブランチエーミングは、ブランチを作成し、アミング呼ば// #gitの支店 アミング *マスター
// *番号がまだ習得され、ノートも上の枝をメーザー
#Gitのチェックアウトエーミング// gitのチェックアウト、ブランチの切り替え ブランチにスイッチを「アミング」 #//ビュー支店のgitのブランチは*数はエーミング達している *のエーミング マスター #のLS //現在のブランチを、マスターファイルには同じである 1 .TXT #1のvim 2.txt //はエーミングブランチに新しいファイル書き込み #の追加をGitリポジトリ。 #gitのは、「2.txtを追加」-mをコミット//リポジトリに変更を加えるようになった、あなただけのgitのコミットを必要としますそれは。 LS#[MRXをルート@ gitroot] 1.TXT 2.txtを [ルート@ gitroot MRX]#Gitのチェックアウトマスター 'マスター'ブランチにスイッチを //は、マスター・ビューに切り替えLSの#2.txtではありません[MRXがルートの@ gitrootを] 1.TXT
分岐は、分岐と分岐の間でファイルの操作は互いに影響を受けない、互いに分離されています。
ブランチはマージ
エーミングブランチはマスターブランチはしませんでした変更を、作られた、と今同じの二つの枝を変更したい、枝をマージすることができます。masterブランチを上に枝をアミング、これらの二つの枝が合意に残るでしょう。
マージ支店前#Gitチェックアウトマスターは//、ターゲットブランチに切り替える マスターに組み込まれてくる変化に#gitのマージエーミング//のエーミングブランチ。
masterブランチとブランチは合併が対立を促す際に、編集した2.txtするアミングされている場合は、合併を続行する前に、これらの競合を解決する必要があります。
紛争の解決ではなく、2.txt内のコンテンツのエーミングブランチのmasterブランチ、編集2.txt、です。そして、2.txtを提出し、その後、エーミングブランチをマージします。
しかし、このような問題があり、場合我々はそれを変更したいマスターブランチの内容は?2.txt変更したい、コンテンツを編集し、提出することができます。アミングスイッチはマスターブランチに分岐し、(後方マージ)の枝にアミングマージします。最新のブランチ古い枝に組み込まれるべき原則があるブランチをマージします。それ以降の新しいブランチでなければなりません支店名と合併。この原理をつかみ、あなたは間違って行くことはできません。
Gitの支店# アミング *マスター マスターブランチの下の[ルートMRXのgitroot @]#のVimの2.txt // 2.txtは数行を追加し uipad uviadp euqpvan 4989496 hgiasd iahusdf #gitの2.txt追加 #gitの「-mをコミットCH 2 .TXT " #gitのチェックアウトアミング #vimの2.txt //エーミング支店では、数行の削除2.txt uipad uviadp euqpvan #gitの2.txt追加 CH 2.txt"#gitのに-mをコミット" #のGitチェックアウトマスター #をGitのマージエーミングは 自動的に2.txtマージ 競合(コンテンツ):2.txtでの競合をマージ 改正補正競合結果を提出した後、自動的に失敗したマージ。 この時点でのコンテンツのさまざまな部分で#猫2.txt // 2.txtが自動的にマークされます。 uipad uviadp euqpvan <<<<<<< hgiasd iahusdf ======= >>>>>>>アミング #vimの2.txt [MRX gitroot @ルート] uipad uviadp euqpvan #gitのチェックアウトアミングの 2.txt:ニーズがマージ エラー:あなたは、インデックスの現在の競合を解決する必要があります あなたが競合をマージするとき//まだここにもう一つの問題は、あなたがダウンして別のブランチに切り替えることはできません。だから、競合マージしないようにしてください #が追加2.txt gitの #は-mをコミット「CHの2.txt」gitの #のGitのチェックアウトアミングの 「アミング」ブランチにスイッチを 一貫性のあるコンテンツの二つのブランチをマージ//#gitのアミング、そして再び合併にこれは、任意の違いはありません。 すでに最新の状態です。
#のGitのブランチ-dのエーミングは//枝を削除します。あなたは枝の下にある場合、あなたは現在の現在のブランチを削除することはできません、あなたは別のブランチに切り替えることができます。
ブランチがマージされていない場合は、削除することを余儀なくさ、それがマージしません削除する前にプロンプトが表示されます。
#Gitのブランチ-D当社
第二に、リモートブランチの管理
教義の枝を使用
アプリケーションの枝のためには、この原則をお勧めします。
マスターブランチはこのブランチのリリースとコードの非常に重要なラインで、我々は通常のブランチ上のコードを開発することはありません。
前オンライン出版に、masterブランチDEVにマージされます場合にのみ、具体的開発として、DEVブランチを作成します。
開発者は、個々の枝に分岐は、コードを開発し、(自分のPC上の)個々のブランチは、基礎devの上のdevのブランチにマージする必要があります。
devの枝は、ボブの分岐命令があるマージ:
#Gitチェックアウトdevが最初のdevの枝に切り替え//、その後、 #gitのは、ボブをマージ
リモートブランチ
リモートをプッシュしていない場合は、新しいローカルブランチは、それは他の人には見えません。
常識:gitのクローンはマスターブランチのクローンを作成することができます。
新しいファイルlinux.docと新しいブランチDEVを作成します。
あなたが成功したブランチを作成した後、もう一度クリックし、あなたが枝を交換するために選択することができますDEV、目の前にチェックマークを見ることができます。
ビューブランチはバックコマンドラインに、このプロジェクトの最初のクローンが唯一のマスターブランチを見つけることができます。
リモートブランチのgit LS-リモートの原点を見るには、すべての枝を見ることができます。
#1のgit LS-リモート原点 45337b0d65a36760796a0f3a45e3f90e1d38ed4e HEADの 41b9784a6f7aeecb1d485e956b10232b5114592a、参考文献/ヘッド/ devの 45337b0d65a36760796a0f3a45e3f90e1d38ed4e、参考文献/ヘッド/マスター
支店のgitのための2例を押します
ときに、同じローカルブランチおよびリモートブランチのgit pushは、このようなマスターとDEVなどのリモートにプッシュ一緒にすべてのローカルのブランチを、変更されます。
あなたはGitのプッシュ原点支店名を使用して、1つの分岐のみをプッシュします。
プッシュgitのプルをつかむことができなかった場合は、リモートブランチよりもローカルブランチ、同じのローカルおよびリモートブランチをプッシュするだけで、デフォルトのGitのプッシュ、リモートのローカルブランチには、余分なプッシュをしたい、Gitのプッシュ原点支店名を使用する場合新しいリモート提出。
git clone的时候默认只把master分支克隆下来,如果想把所有分支都克隆下来,需要手动创建,在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称要一致。这里的两个branch-name指远程分支的名字。
# git checkout -b dev origin/dev 分支 dev 设置为跟踪来自 origin 的远程分支 dev。 切换到一个新分支 'dev' # vim 4.txt # git add 4.txt # git commit -m "add 4.txt" # git push 0b51fcb..43fd64d dev -> dev //git push后,最后一行可以看到从dev推送到了dev。 再到远程上刷新,可以看到dev分支下出现了4.txt,而master是没有的。
三、标签管理
标签类似于快照功能,可以给版本库打一个标签,记录某个时刻库的状态。也可以随时恢复到该状态。
git checkout master 先切换到master分支上,以后打标签也是针对master分支来做。 git tag v1.0 给master打一个标签v1.0 git show v1.0 查看标签信息 git tag 查看当前分支下所有的标签 tag是针对commit来打标签的,所以可以针对历史的commit来打tag,v1.0是对最新的版本打的标签。 git log --pretty=oneline --abbrev-commit //先查看历史的commit,这里后面的选项指用简写的commit。 git tag v0.9 46d3c1a //针对历史commit打标签 git tag -a v0.1 -m "first tag" 2ec587f //可以对标签进行描述
# git show v0.1 tag v0.1 Tagger: aming Date: Thu Sep 19 11:06:29 2019 +0800 first tag //查看标签信息可以看到描述 commit 2ec587ff6e9e0e4c67aefb84e02b2b73693d633e Author: aming Date: Sun Sep 8 14:59:15 2019 +0800 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..6f0cbde --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# apelearn
git tag -d v0.8 //删除标签
前面的操作都是在客户端,还没有推送到远程服务端。
查看远程上的tags方法,在切换分支的选项里:
git push origin v1.0 //推送指定标签到远程
git push --tag origin //推送所有标签
如果本地删除了一个标签,远程也想要删除需要这样操作:
git tag v0.8 -d //删除本地标签
git push origin :refs/tags/v0.8 //删除远程标签
四、git别名
git commit 这个命令可以用别名表示,用别名可以提高我们的工作效率。 格式: git config --global alias.别名 命令名 git config --global alias.ci commit git config --global alias.co checkout git config --global alias.br branch 这些别名的配置都在/root/.gitconfig文件中,可以在文件内进行更改。 查看git别名使用命令 git config --list |grep alias 查询log小技巧: # git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" # git lg //可以看到用户,时间,描述和tag。 * 45337b0 - (HEAD, tag: v1.0, origin/master, origin/HEAD, master) add 3.txt (6 天之前) * 41b9784 - Create linux.doc (7 天之前) * d816b47 - add 1.txt (13 天之前) * 0c8b170 - add 2.txt (13 天之前) * 2ec587f -最初に(13日前)コミット キャンセルエイリアス Gitの設定--global --unset alias.br
要約:
支店の管理
ビュー分岐gitのブランチ
gitのチェックアウトmasterブランチの切り替え
マスターにマージするための変更でgitのマージエーミングエーミングブランチ
Gitのブランチは削除された枝をアミング-d
枝を取り除くことを余儀なくGitのブランチ-Dのエーミング
リモートブランチの管理
gitのLS-リモート原点ビューリモートブランチ
Gitのプッシュ原点ブランチ名は、単一の分岐を押してください
Gitチェックアウト-b支店名由来/支店名を使用して、ローカルブランチおよびリモートブランチ対応を作成します。
ラベル管理
ラベルを演奏v1.0をマスターブランチにgitのタグv1.0を
gitのショーv1.0のビューラベル情報
gitのタグすべてのタグを見ます
gitの=としてonelineの--abbrevコミットビューコミットの歴史を--prettyログ
行うにはdescriptionタグ2ec587f gitのタグ-a v1.0の-m「最初のタグ」
gitのタグ-d v0.8は、ラベルを削除します
Gitのプッシュ原点v1.0のは、リモートに指定されたラベルをプッシュします
gitのプッシュ--tag原点プッシュすべてのタグ
ローカルラベルを削除-d gitのタグv0.8
Gitのプッシュ原産地:レフリー/タグ/ v0.8リモートタグを削除
gitの別名
gitの設定--globalエイリアス。エイリアスコマンド名
Gitの設定--list | grepのエイリアスビューの別名
gitの設定--global --unset alias.br