gitとgithubの使用

gitとgithubの紹介

Gitとは

Gitは、小規模または大規模なプロジェクトを迅速かつ効率的に処理するためのオープンソース[分散型] [バージョン制御システム]です。

バージョンコントローラー
CVS / SVN / Git

SVN
クライアント/サーバー

GIT
クライアント/コードホスティングWebサイト(例:github)

注1:同様のコードホスティングサイトもあります:github / Code Cloud / Alibaba Cloudコードソースコード管理
注2:同様のテクノロジーGitLabですが、
GitHubとは異なります。GitLabとGitHubは、サードパーティのGitベースの作品に属しています。 、無料でオープンソース。Githubと同様に、ユーザーの登録、コードの送信、SSHKeyの追加などを行うことができます。
違いは、GitLabを自分のサーバーにデプロイできることです。データベースなどのすべての情報が手元にあります。チーム内での共同開発に適しています。チーム
の知恵を他の人のサーバーに置くことはできませんよね?簡単に言えば、GitLabはGitHubの個人用バージョンと見なすことができます。

GitとSVNの違い(キーレコード1/2/3ポイント)

1.
分散型GITは分散されていますが、SVNは分散されていません。これは、GITと、SVN、CVSなどの他の非分散バージョン制御システムとの主な違いです。
2.gitリポジトリの任意のコピーをサーバーとして個別に使用できます。3。Gitに
は4つのファイルの状態があります
。untracked:ファイルが新しく追加および
変更されたことを示します:ファイルが変更されたことを示します。しかし、それはgitリポジトリに保存されていません。
段階的:変更されたファイルの現在のバージョンが、スナップショットの次の送信に含まれるようにマーク
されていることを示しますコミット済み:ファイルがgitリポジトリに保存されていることを示します。
4.他の
GITにはグローバルバージョン番号がありませんが、SVNには次の機能があります。これまでのところ、これはSVNと比較してGITに欠けている最大の機能です。
GITのコンテンツの整合性はSVNよりも優れています。GITのコンテンツストレージはSHA-1ハッシュアルゴリズムを使用します。これにより、コードコンテンツの整合性が確保され、ディスク障害やネットワークの問題が発生した場合のバージョンライブラリへの損傷を減らすことができます
。5。差異ではなくスナップショットを直接記録します
。GITはコンテンツをメタデータとして保存し、SVNはファイルされます。すべてのリソース制御システムは、.svn、.cvsなどのフォルダー内のファイルのメタ情報を非表示にします。
違いの代わりにスナップショットを直接記録します。6
違いではなく、スナップショットを直接記録します
。GITブランチはSVNブランチとは異なります。ブランチはSVNに特化しておらず、リポジトリ内の別のディレクトリです。
ここに写真の説明を挿入

Githubの簡単な使用

登録は比較的簡単なので、ここではあまり紹介しません。その後、githubWebサイトにログインします。

ここに写真の説明を挿入
プライベートライブラリを
ここに写真の説明を挿入
作成し、パブリックライブラリを
ここに写真の説明を挿入
ここに写真の説明を挿入
作成し、ファイルを作成して
ここに写真の説明を挿入
ここに写真の説明を挿入
から送信
ここに写真の説明を挿入
ここに写真の説明を挿入
し、フォルダを
ここに写真の説明を挿入
ここに写真の説明を挿入
作成します。ファイルの作成時に説明を追加する場合
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入
は、ウェアハウスを削除します。
ここに写真の説明を挿入
ここに写真の説明を挿入

Gitのダウンロードとインストール

ダウンロードアドレス:
https //git-scm.com/downloads
ここに写真の説明を挿入
ダウンロードが完了したら:
ここに写真の説明を挿入
ここに写真の説明を挿入
スタートメニューディレクトリ名、デフォルトのgitを作成し、変更する必要はありません。gitで
ここに写真の説明を挿入
使用するエディターを選択し、
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入
行末で改行変換を行い、デフォルト値の
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入
インストールを使用して
ここに写真の説明を挿入
ここに写真の説明を挿入
インストールの成功検出します。ウィンドウまたはデスクトップを右クリックすると、次の2つのオプションが表示されます
ここに写真の説明を挿入
ここに写真の説明を挿入

一般的なコマンドをGit

Git構成アカウントとメールボックス(ローカルマシン)
通常、ユーザー名とパスワードは、ローカルウェアハウスにコードを送信する(リモートウェアハウスにコードをアップロードする)ときに使用するため、Gitをインストールするときに構成する必要があります。
構成がない場合は、送信時に使用されます。思い出させます。ただし、公開プロジェクトのクローンを作成する(つまりダウンロードする)だけの場合は、登録する必要もありません。作成したばかりのアカウントは、
他のプロジェクトフォークし、将来的に独自の変更をプッシュするためのものです。

コマンドライン構成

0.「gitbashhere」でコマンドウィンドウを開きます
1.git構成リストを表示します
gitconfig --list
注1:構成がない場合は、空にする必要があります。次の手順に従って構成を完了した後、コマンドを再試行すると、一連の構成情報が表示され
ます。2。ユーザー名/メール/パスワード
git config --global user.name“ username”
git config --globaluserを設定します。 email "email"
git config --global user.password "password"

パスワードは必要ありません。次に、sshキーを使用します
。gitconfig--global user.name "xieminglu02"
git config --global user.email "[email protected]"

 注1:全局变量
       --global  表示全局的,即当前用户都有效,该配置会出现在 ~/.gitconfig 文件中,~表示当前用户的目录,
      比如我的是:C:\Users\Administrator\.gitconfig,打开该文件你会发现如下图所示的内容: 
       [user]
   name = xxx
   email = [email protected]
 注2:局部变量
      git config user.name  "username"  
      git config user.email  "email"
      局部是只对当前仓库起效的,它的配置信息会在当前仓库根目录/.git/config文件下
      注意:局部变量覆盖全局变量!!!和编程语言里面的变量关系是一样的。
 注3:删除某个全局配置项
      git config --global --unset user.name

ここに写真の説明を挿入
ここに写真の説明を挿入

Gitコマンドの使用シナリオ

Gitファイルのステータスと作業領域(強調)
gitファイルのステータスはgitのコアコンテンツです。理解すると、後続の操作に非常に役立ちます。さまざまなファイルステータスがさまざまな作業領域に保存されます。
1.ファイルのステータス
gitのファイルのステータスは次のとおりです
。Untracked:ファイルが新しく追加されたことを示します。Modified:ファイル
が変更されたが、gitリポジトリに保存されていないことを示します。
段階的:変更されたファイルの現在のバージョンが、スナップショットの次の送信に含まれるようにマーク
されていることを示しますコミット済み:ファイルがgitリポジトリに保存されていることを示します。

2.作業領域
ローカルコンピュータとリモートコンピュータによると、次の作業領域があります
。1)ローカルコンピュータ
作業ディレクトリ:編集中のファイルのステータス。この領域では、ファイルのステータスが追跡されていない(追跡されていない)および変更されている(変更されている)。
ステージングエリア(一時保存エリア):次回送信するファイルリスト情報を保存します。ファイルのステータスはこの領域でステージングされます。
リポジトリ(ローカルウェアハウス):ローカルウェアハウスに送信されたファイル。
2)リモートコンピュータ
リポジトリ:リモートコンピュータに送信されたファイル。

ここに写真の説明を挿入
一般的に使用されるコマンド(強調)
git clone:リモートウェアハウスをローカルコンピューターにクローンします。
git status:ワークスペースと一時ストレージ領域にさまざまな状態のファイルを表示します。
git add:作業ディレクトリからステージング領域にコンテンツを追加します。
git commit:git addによって一時的に保存されたすべてのファイルは、ローカルウェアハウスに送信されます。
git push:ローカルウェアハウスのレコードをリモートウェアハウスに送信します。
git reset HEAD:指定されたファイルを一時ストレージ領域から削除します。
git checkout-:指定されたファイルをローカルウェアハウスから復元します。
git pull:リモートウェアハウスからデータをプルします。
git init

実用的な操作:gitを使用してファイルをリモートウェアハウス(キー)に送信する
最初に一般的なプロセスを明確にします:
1。プロジェクトのGitウェアハウスを取得します。1つ
目は既存のgithubウェアハウス(リモート)から新しいウェアハウス(ローカル)を複製​​することです
。2つ目は作業ディレクトリで新しいウェアハウス(ローカル)を初期化し、Github
2でウェアハウス(リモート)に関連付けます。ローカルのクローンライブラリで必要な変更を加え、ファイルコンテンツを変更し、ファイルを追加します。;
3.add、コミットし、三部作をプッシュします。

既存のgithubウェアハウス(リモート)から新しいウェアハウス(ローカル)をクローンするには

1。プロジェクトのGitウェアハウス(既存のgithubウェアハウスからクローン)を取得します
##ここで、urlは自分のウェアハウスのアドレスに変更されます
git clone https:/ /github.com/xieminglu02/library_pub.git

 注1:此命令,会在当前目录下创建一个名为library_pub的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。
      如果进入这个新建的 library_pub目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。

 注2:克隆仓库的命令格式为 git clone [url],Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快    
      git clone [email protected]:fsliurujie/test.git          --SSH协议
      git clone git://github.com/fsliurujie/test.git        --GIT协议
      git clone https://github.com/fsliurujie/test.git      --HTTPS协议 
      提问:那平时使用哪个协议最好呢???

 注3:你熟悉其他的 VCS 比如 Subversion,你可能已经注意到这里使用的是 clone 而不是 checkout。这是个非常重要的差别,
      Git 收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,
      即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库,回到当初克隆时的状态 
 注4:如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字
      git clone https://github.com/xieminglu02/library_pub.git mytest1

注5:.gitディレクトリ(デフォルトでは非表示のフォルダ)
ウィンドウメニューを表示する方法:[表示]-> [オプション]->選択、タブ[表示]-> [非表示のファイル、フォルダ、およびドライブを表示する]をオンにします

2.
git clone倉庫の初期ステータスを表示した後、git statusを実行します。
注1:gitウェアハウスのステータスを表示する別の方法は
、test1ディレクトリ入る方法です。ls-ahコマンドを使用して.gitディレクトリを表示します。これは、クローンが成功したことを意味します。このディレクトリはすでにgitが管理できるウェアハウスです

ここに写真の説明を挿入
3.ファイルを
追加するこのウェアハウスのソースディレクトリの下にadd.txtファイルtを追加し、git statusを実行します。
注1:ファイルの上に「追跡されていないファイル」があることがわかります。これは、このファイルが「追跡されていない」ことを意味します。

4.新しく作成したファイルを「一時領域」に
追加しgit add source / add.txt実行すると、新しく作成したadd.txtが「一時領域」に送信され、実行後にgit statusが実行されます。
注1:あります。説明gitreset HEADを使用して、指定したファイルを一時ストレージ領域から削除します。
ここに写真の説明を挿入

5.「一時領域」の内容を「ローカルウェアハウス」に
送信してgitcommit実行し、「一時領域」の内容を「ローカルウェアハウス」に送信し、実行後にgitstatusを実行します。

 注1:如果没有配置帐号或密码,会出现以下提示
      *** Please tell me who you are.
 注2:git commit 时出现:please enter the commit message for your changes,
      默认会启用 shell 的环境变量 $EDITOR 所指定的软件,一般都是 vim(没错啦,就是linux课程使用过滴) 或 emacs,

      即询问你是否要添加“提交说明”
      要输入“提交说明”的话就需要
      1.按键盘字母 i 进入insert模式
      2.修改最上面那行黄色合并信息,可以不修改
      3.按键盘左上角"Esc"
      4.输入":wq",注意是冒号+wq,按回车键即可

      也可以使用 -m 参数后跟“提交说明”方式,在一行命令中提交更新。
      git commit -m “提交说明”
      另外,提交说明在团队合作中是非常重要的一点,要尽量写的简洁而语意清晰

ここに写真の説明を挿入

6.「ローカルウェアハウス」のコンテンツを「リモートウェアハウス」に
送信してgitpush実行し、「ローカルウェアハウス」のコンテンツを「リモートウェアハウス」に送信し、実行後にgitステータス
プロンプトを実行します。送信後、gitステータスが初期化に戻っていることがわかります。状態。

注:ここにgithub Webサイトのユーザー名(電子メールまたはログインアカウントxieminglu02)とパスワードを入力します
ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

これは、ファイルが変更され、コメントが直接送信された場合です
。gitcommit -a || -m「変更されたファイル、一時ストレージ領域をスキップして、ローカルウェアハウスのコメントの説明に直接配置します。」
ここに写真の説明を挿入
ここに写真の説明を挿入

作業ディレクトリで新しいウェアハウス(ローカル)を初期化し、Githubでウェアハウス(リモート)に関連付けます

1.プロジェクトのGitリポジトリを取得します(作業ディレクトリで新しいリポジトリを初期化します)。
既存のプロジェクトでGit管理を開始するには、プロジェクトが配置されているディレクトリに移動します。例:D:\ initPath \ git_repository \ library \ library_pub2、
execute:git init2
。上記と
同じ3.上記と同じ
4.上記と同じ
5.上記と同じ
6.「ローカルウェアハウス」のコンテンツを「リモートウェアハウス」に
送信してgitpush実行し、「ローカルウェアハウス」のコンテンツを「リモートウェアハウス」に送信します。次のエラーが
致命的に報告されます。プッシュ先が構成されていません。
コマンドラインからURLを指定するか、を使用してリモートリポジトリを構成します。
これは、ローカルウェアハウスがリモートリポジトリに関連付けられていないため、初めて送信するときに指定する必要があるためです。リモートウェアハウスのURL、具体的な操作は次のとおりです。

 ## 在github先建仓库test3,目前,在GitHub上的这个仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,
 ## 也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
 1.打开浏览器,登陆github后,新建一个仓库test3(目前在GitHub上的这个仓库还是空的),它的地址为:
   https://github.com/xieminglu02/library_pub2.git

   注1:在GitHub主页创建test3仓库,注意不要添加README.md等任何文件

 2.将本地仓库的当前分支与远程仓库相关联 
   git remote add origin https://github.com/lixiao12/test224_pub2.git

   注1:语法:git remote add <name> <url>
        远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库
   注2:https://github.com/lixiao12/test224_pub2.git改成自己仓库对应的URL
   注3:补充命令,如果url打错了,可以通过如下命令修改远程仓库关联
        git remote set-url origin https://github.com/lixiao12/test224_pub2.git

 3.将本地代码库的某一分支(eg:master)推送到远程的代码库
   git push -u origin master
   注1:把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程
        由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
        还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
   注2:补充命令,查看git仓库的远程代码库的地址:git remote -v
   注3:再次添加文件b.txt,依次add/commit/push操作,则与之前没有区别了  

gitを使用して、リモートウェアハウスからローカルウェアハウスに
プルします(フォーカス)git pull

Gitの競合

1.最初にリモートウェアハウスからローカルにコードをプルし、次に競合コードを変更します。gitpull
注1:git statusを使用してウェアハウスのステータスを表示すると、「bothmodified:conflict.txt」という赤いエラーメッセージが表示されます。

2. conflict.txt、及び手動競合部のコード変更
<<<<<<< HEAD
変更するlibrary_pubディレクトリ
=======
変更するlibrary_pub2ディレクトリを
>>>>>>>> b6d61fdf3b4088b12c83e0a72dc5a431a023c0c2の
注1:<<< <<<< HEAD >>>>>>>の間のコードは競合するコードであり、手動で変更できます

3.次に、リモートウェアハウス
コミットの実行へのコードの追加/コミット/プッシュが完了し、ウェアハウスステータスのgitステータスを再確認します。赤いエラーメッセージ「bothmodified:conflict.txt」
は表示されなくなり、競合が解決されたことを示します。

おすすめ

転載: blog.csdn.net/xieminglu/article/details/102934355