一般的な操作とコマンドをGitは
ローカルライブラリ操作
ビューのgitコマンドのヘルプドキュメント
- ブラウザがポップアップ表示されます。このコマンドを実行した後、ブラウザが表示され、マシンのパフォーマンス上の理由で、ドキュメントを開くため、若干の遅延が待機した後、コマンドが実行され、ファイルを助けます
- ブラウザに表示されたHTMLページがローカル静的なページであります
#init是查看init命令的帮助文档
git help init
作成またはローカルライブラリを初期化
- このパスは、ローカルライブラリされている場合は、元の状態に復元
- このコマンドは、パス内のフォルダ内のファイルを削除しないでください、隠しフォルダにgitを作成し、任意に変更しないでください
#创建、初始化该路径
git init
#在该路径下创建demo文件夹,并将其创建为本地库。若该文件夹存在,则将其初始化
git init demo
ローカルライブラリを削除します。
- ローカルライブラリを削除するだけにローカルのgitリポジトリフォルダ内の隠しファイルを削除する必要があります
プロジェクトファイルが保持されない場合は、ディレクトリは、アイテムを削除することができます
署名設定
- 目的が異なる開発者の身元を区別することで、ユーザ名とメールボックス、署名と署名ユーザレベルのシステム・レベルの署名プロジェクトを必要とし、2つがアップを設定する必要があります。
- プロジェクトレベルの署名設定での結果は、ユーザーレベルの構成システム内のファイルを.gitconfigするシステムのルートディレクトリにユーザを設定し、.git / configファイルに設定されます
- ここでは、ユーザー名とメールボックスがGitHubのアカウントとは何の関係もありませんし、メールボックスがちょうどアイデンティティを識別するために、メールを送信するメールボックスを設定しません。
#项目级别:仅在本地库范围有效,优先级高
git config user.name jerry
git config user.email [email protected]
#系统用户级别(操作系统登录的用户):在当前操作系统的所有本地库有效
git config --global user.name jerry
git config --global user.email [email protected]
Viewプロジェクトのステータス
- 新しいファイルが追加または変更されている場合は、このコマンドを使用して、これらのファイルが強調表示されます
- このコマンドは、ステージングエリアとローカルライブラリのステータスが表示されます
git status
ステージング領域にファイルを追加します。
- 書類を提出しない提出するファイルのステージング領域レコードは、ステージングエリアに追加する準備ができません。
- 地元の図書館に提出するためには、唯一のステージング領域にファイルを提出した後ファイル、およびライブラリは、地元のステージング領域ファイルではなく、ワークスペースファイルに提出されます
#添加所有变更文件及子目录下的文件至暂存区
git add .
#添加单个变更文件至暂存区
git add demo.txt
#添加子目录下的变更文件至暂存区
git add com/app.txt
最初からファイルを元に戻します
git rm --cached demo.txt
地元の図書館にステージングエリアに提出
- ファイルが変更された場合、あなたはできません
git add
直接提出するには、このコマンドを使用しますが、それは新しいファイルであれば、あなたがしなければならないgit add
から、コマンドを使用します - 地元の図書館に書類を提出した情報を提出した発言のサブセットを配向させることができる、この操作は必要ありません
#将暂存区的某个文件提交至本地库。使用该命令成功后,会进入vim编辑页面,这个页面中可添加备注消息。操作vim与linux操作vim的方式一致
git commit demo.txt
#可以使用 -m 参数,直接添加备注消息
git commit -m "git demo" demo.txt
#将暂存区的所有文件提交至本地库
git commit -m "commit all"
プロジェクトの操作ログを見ます
#显示完整的日志信息
git log
#以一行形式显示日志信息
git log --pretty=oneline
#以一行形式显示日志信息,且简化索引
git log --oneline
#显示完整的日志信息,且显示指针与步长
git reflog
プロジェクトバージョンのロールバック
- ロールバックバージョンは、状態の一時領域のバージョンに復元プロジェクトワークスペースファイルを参照します
- コマンドをリセットし、一般的に使用されるパラメータ:
--soft
:ワークエリア、ステージングエリアのバージョン変更されません、ローカルライブラリのバージョンを変更する
--mixed
:のみローカルライブラリとステージング領域のバージョンを変更し、ワークスペースのバージョン変更されません
--hard
地元の図書館、ステージングエリアとワークスペースのバージョンを:変更 - ここに示されたHEADはmasterブランチへのポインタであります
#根据版本索引移动版本,可前进可后退,使用后,log依然包含所有版本
git reset --hard 7c213d1
#使用散列值移动版本,可前进可后退,使用后,log依然包含所有版本
git reset --hard HEAD@{1}
#使用^移动版本,只能后退不能前进,HEAD后有几个^就移动几步,使用后,log只显示目前版本和之前版本
git reset --hard HEAD^
#使用~移动版本,只能后退不能前进,~后是数字几就移动几步,使用后,log只显示目前版本和之前版本
git reset --hard HEAD~1
ファイルの違いの比較
- デフォルトでは、一時領域のバージョンとは対照的です。
- あなたの地元の図書館の歴史のバージョンと比較することができます
- ファイル名を指定してコマンドは、ファイルが現在のワークスペース内のすべての違いを比較されて、ファイル名を指定せずに、単一のファイルとは対照的に差があります
#将当前工作区的demo.text与暂存区demo.text对比差异
git diff demo.text
#将当前工作区的demo.text与上一个历史版本比较差异
git diff HEAD^ demo.text
#将当前工作区的所有文件与暂存区对比差异
git diff
#将当前工作区的所有文件与最新历史版本比较差异
git diff HEAD
分岐動作
現在のプロジェクトのすべてのブランチを見ます
git branch -v
ブランチを作成します
#创建一个名为new_branch的分支
git branch new_branch
スイッチングブランチ
#切换到new_branch分支工作
git checkout new_branch
削除された枝
#删除不是当前所在分支的分支
git branch -d new_branch
復旧ブランチ
#通过散列值恢复分支
git branch new_branch HEAD@{1}
#通过^恢复分支
git branch new_branch HEAD^
#其他恢复方式与回滚项目版本中方式一致
ブランチをマージ
- ブランチに切り替える前に、組み合わせた枝はブランチでマージする必要があります。
- 例:masterブランチにブランチをnew_branchするには、合格する必要がある
git checkout
masterブランチに戻って動作を切り替え
#将new_branch这个分支合并到当前分支
git merge new_branch
ブランチ紛争解決をマージ
- 紛争の理由:二つの枝がある同じで、同じファイルへの変更の同じバージョン
- 紛争のgitのパフォーマンス時:コマンドライン表示(支店名|マージ)、結合状態で表現は、競合が発生しました。競合ファイルを表示し、gitのは、紛争の一環としてマークされて追加されます
- 紛争の解決、紛争はまず手動で、ファイルの内容を変更する場所に廃棄予約を選択してから、次のことを行う必要があります。
#将冲突状态标记为已解决
git add demo.text
#退出合并状态,也可通过 -m 参数添加注释消息,切记不能带文件名,本次操作是退出合并状态而不是将文件提交到本地库
git commit
リモートライブラリ操作
リモート・データベース・アドレスの別名を作成します。
#test是别名,https://github.com/rawlins2397/test.git是远程仓库地址
git remote add test https://github.com/rawlins2397/test.git
作成したすべてのエイリアスを見ます
git remote -v
エイリアスの名前を変更します
#将已有别名test重命名为test1
git remote rename test test1
エイリアスを削除します
#删除已有别名test
git remote remove test
リモートライブラリにローカルのライブラリをプッシュ
- コマンドが実行を認証するために、リモート・データベースのアカウントとパスワードを入力するように求められます
- 順序は、ネットワーク上の理由のために、私たちは、アップロード待機する必要があり、ファイルのアップロード処理を必要とします
- 別名を通して押された場合は、別名クローニングもクローンます
#需要指定远程库地址和要推送的分支
git push https://github.com/rawlins2397/test.git master
#远程库地址可是使用别名代替,这里的test是别名
git push test master
地元の図書館へのリモートリポジトリをクローン化しました
- クローン操作は、クローニング操作は、ネットワーク転送におけるデータの損失なしに、そのチェック項目を確実にするために、SHA-1ハッシュ暗号化アルゴリズムのための手段を完了するために、リモートローカルライブラリークローンを完了する
- ローカルディレクトリはする必要はありません
git init
自動的に初期化されます成功をクローニングし、地元の図書館に初期化します - プッシャーは、地元の図書館の別名を押し通すしようとしている場合は、クローン構成は、エイリアスを作成し、
git clone https://github.com/rawlins2397/test.git
地元の図書館へのリモートリポジトリを引いて
- 異なるプルリモートライブラリおよびクローニングは、プロジェクトのために地元の既存のローカルライブラリを表す引っ張っているが、マージするファイルの最新バージョンを引っ張っ
- 二つの方法を引っ張っ:直接
git pull
およびステップを使用git fetch
し、git merge
git pull
コマンドgit fetch
とgit merge
結合
#该操作将远程库的分支拉取到本地库的一个分支,并没有进行合并,test是远程库别名,master是要拉取的远程库的分支,这个分支拉取成功后可通过test/master来使用
git fetch test master
#将fetch拉取的分支合并到当前分支
git merge test/master
#通过pull可以直接将别名为test的远程库master分支拉取并合并到本地当前分支
git pull test master
紛争解決のバージョンをプッシュ
- マルチメンバーの開発プロセスでは、スタッフをプッシュする優先権を与えて、同じファイルの同じバージョンへの変更は、成功したプッシュします人々がプッシュした後に押すと、あなたが引くと、それらを押し上げるするように求められます、パフォーマンスのバージョンとの競合をプッシュしています
プッシュのバージョンとの競合を解決するには、最初のリモートリポジトリの最新バージョンが原因枝を引っ張っての紛争や合併のローカルブランチに、ローカルに引っ張られ、合併は、競合を解決するために、分岐紛争解決を参照して
SSH公開鍵の生成
- SSH公開鍵地元の図書館では、無料の秘密の安全な送信の遠隔ライブラリーを用いて達成することができます
- 唯一のオペレーティングシステムの場合は、一般的に唯一のオペレーティング・システム・アカウントとリモートライブラリアカウントを操作するユーザに適用され、したがって、遠隔SSHライブラリのみ結合によってSSH公開鍵を占め、そして
#切换到用户根目录,查看是否存在something 和 something.pub 来命名的一对文件,这个 something 通常就是 id_dsa 或 id_rsa,如果有,打开.pub文件,其内容就是SSH公钥
cd ~/.ssh
ls
#若不存在,则需要创建一个SSH公钥
ssh-keygen -t rsa -C "[email protected]"
#ssh-keygen的参数为:-t 指定密钥类型,默认是 rsa ,可以省略。-C 设置注释文字,通常为邮,注意C必须为大写。-f 指定SSH存储的文件名。
#运行命令后,若没有使用-f参数,则会提示输入文件名,可回车使用默认值。还会要求输入两次密码,这个密码是用于使用SSH公钥的密码,而非登录远程库帐号的密码,若不需要,直接回车忽略
#.pub文件,其内容就是SSH公钥
リモートリポジトリにプッシュファイルを無視
- 多くの場合、コンフィギュレーションファイルは、コード・エディタ、プロジェクト自体を行うには、これらのプロファイルの何を生成しているプロジェクトは、そのプロジェクトがリモートリポジトリにプッシュされますとき、あなたはこれらのファイルを無視するようにプッシュを設定する必要があります
- コードエディタは、プロジェクトが唯一のエディタの同じバージョンを使用することができることを保証できませんので、必要があります無視しないあなたはプッシュを無視していない場合は、プロファイルこれらの設定ファイルは、コードエディタのバージョンに関連付けられているため、プロジェクトの開発を危うくします生成しました不必要なマージの競合
- 行くhttps://github.com/github/gitignoreを言語プロジェクトに関連し、無視されたファイルを参照してください
- 唯一、地元の図書館.git / configに〜/ .gitconfigファイルを無視するローカルライブラリを設定する必要がある場合は、文書の作成は、この文書の内容は、(上記URLを参照してください、とも無視するカスタムファイルタイプにすることができ、コンフィギュレーション)とドキュメントを導入
[core]
excludesfile = C:/Users/rawlins/Java.gitignore