初心者はGitを勉強して現地でGitを使う

8619 ワード

開発者ごとにバージョン管理ツールがあるはずです.GitとSVNの中で、Gitを選びました.以下は私の心得です.
Gitとは
Gitは現在世界で最も先進的な分散バージョン制御システムである(一つもない).
一、Git取付
1)、linuxでのインストール:
Ubuntu Linuxは、sudo apt-get install git 1本でGitのインストールを直接完了することができ、非常に簡単です.
2)、windowsでインストール:
Gitの公式サイトでダウンロードして、それからすべてデフォルトを選んで、ずっとnextをクリックして
2.最初に使用した設定
1)、ユーザー名とメールボックスを設定し、ユーザーを区別する(注:windowsでは、インストール完了後にスタートメニューにGit Bashがあり、これをクリックするとGitが開き、Gitのコマンドが書かれている)
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

2)、バージョンライブラリの作成
バージョンライブラリを作成するのは簡単です.まず、適切な場所を選択し、空のディレクトリを作成します.
$ mkdir learngit
$ cd learngit
$ pwd 
D:/JavaWorkSoftware/git/learngit

注意:最後にこのpwdは現在のディレクトリを表示するために使用されます.Windowsシステムを使用する場合は、ディレクトリ名(親ディレクトリを含む)に中国語が含まれていないことを確認してください.
3)、git initコマンドでこのディレクトリをGitが管理できる倉庫にする:
$ git init
Initialized empty Git repository in D:/JavaWorkSoftware/git/learngit/.git/

はい、Gitはインストールが完了しました.そして使い始めましょう.
4)、倉庫にファイルを書いてexampleを作成します.txt
This is an example file,
This is creat in Git.

(2).ファイルを追加し、git addコマンドで
$ git add example.txt
warning: LF will be replaced by CRLF in example.txt.
The file will have its original line endings in your working directory

このコマンドは一般的に何のヒントもありませんが、このようなヒントが現れました.LF(改行、Line Feed)はCRLF(折り返し改行、CarriageReturn)に置き換えられ、作業ディレクトリに元の行末が表示されます.この警告は、フォルダがリモートに存在しないためですが、コミットには影響しません.もう一度実行すればいいです.
(3).提出git commit
$ git commit -m "first example file"
[master (root-commit) 0cecffa] first example file
1 file changed, 2 insertions(+)
create mode 100644 example.txt

このcommitコマンドのパラメータ-mは、バージョン管理で使用できるように、今回のコミットファイルのログを追加するために、タグを付けることに相当します.
tips: git         , .txt .java .md        ,  ,         UTF-8  

二、バージョン管理ローカル倉庫を例に、バージョン管理を説明する
1)、まずいくつかの概念ワークスペースと一時保存エリアについて話します.
ワークスペース(Working Directory)は、私たちのパソコンに見えるファイルディレクトリです.ここで私の/learngitはワークスペースで、ワークスペースには多くのブランチがあります.
ブランチ(Branching)は、その名の通り、木の葉に似た分岐である.ワークスペース全体を主幹にたとえると,分岐の概念がよりよく理解される.私たちは今Gitのメインブランチ(master)で操作しています.後でブランチ管理について話します.
私たちが以前mkdir learngitコマンドで作成したワークスペースは、ワークスペースに隠しディレクトリ.gitがあり、これがGitのバージョンライブラリ(Repository)です.
現在作業中のディレクトリですが、コンテンツはまだワークスペースに保存されていません.
2)、Gitの下でファイルを修正する
私たちはGitの下でファイルを操作して、どのように象を冷蔵庫に入れて類比します(これは私自身がとても好きな学習方法です):
(1).現在のワークスペースの下にあるexampleを変更します.txtファイル(象を用意して、きっと誰かが聞くことができて、冷蔵庫を用意しなくてもいいですか?はは、Gitはこの冷蔵庫です).
This is an example file,
This is creat in Git.
This is third line.

(2).2ステップごとにゾウを冷蔵庫に入れるに違いないgit add命令で
しかし、象を冷蔵庫に入れる前に、いくつかの小さな命令git status git を学びました.
$git status
On branch master
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)

modified: example.txt

no changes added to commit (use "git add" and/or "git commit -a") 

修正しました.txtファイルは変更されましたが、この変更はワークスペースに提出されず、git addまたはgit commitを使用するよう求められました.
もう1つのコマンドはgit diffで、修正前後の2つのファイルの違いを表示するために使用されます.これはデモをしません.もう一つのgit checkout -- [ ] は、修正を取り消しています.つまり、この時私たちは突然象を冷蔵庫に入れたくなくなりました.私たちは取り消すだけでいいです.
$git checkout -- example.txt

このコマンドの実行が完了しても何のヒントもありません.git status でgitのステータスを確認します.つまり、このgitにはcommitを必要とするファイルがありません.
$ git status
On branch master
nothing to commit, working tree clean

(3).さて、このいくつかのエピソードを学んだ後、私たちの象を冷蔵庫(倉庫のファイルを修正する)に入れる最後のステップは、冷蔵庫のドアを閉めることです(git commit -m).私たちは修正を取り消す操作を実行したばかりで、もう一度やり直します.
This is an example file,
This is creat in Git.
This is third line.
$git add example.txt $git commit -m "add third line"
3)、バージョンの変更:本当に複数のバージョンの前にファイルテストに切り替えて、私たちは何度もこのファイルを修正して、つまりいくつかのバージョンを多くします(この操作はvim-add-commitにほかならない).いくつかのバージョンを変更した後、git logコマンドで現在のワークスペース(実はブランチ)の状態を表示します.
$ git log
commit 7b0b4f5c4c9ffc053db65ed0d7835ae62a27e0b6 (HEAD -> master)
Author: Lyn4ever 
Date: Fri Jun 7 00:23:54 2019 +0800

add fourth line

commit 11b13721088ea653042af7986e0d5b1f1b29a9e9
Author: Lyn4ever 
Date: Fri Jun 7 00:16:12 2019 +0800

add third line

commit 0cecffad8b547533728d2c1a9bef581c6c01f359
Author: Lyn4ever 
Date: Thu Jun 6 23:45:24 2019 +0800

first example file


これは簡単にわかりますが、現在3つのバージョンがあり、これは逆順序でソートされています.つまり、現在のファイルのバージョンは一番上のものです.commitの後ろに付いているのがバージョン番号で、続いて2行が作者と時間で、次は私たちがcommit-mで書いたログです.(注意:あなたのファイルidは私とは違います.テスト時にあなたのものを基準にします)バージョンを変更するコマンドはgit reset --hard commit_idです.試してみましょう.現在のgitにcommitされていないファイルがないことを確認してから、ファイルの内容を表示します.
$ git status
On branch master
nothing to commit, working tree clean
$ cat example.txt
This is an example file,
This is creat in Git.
this is third line.
this is forth line.

では、ログが「add third line」というバージョンに戻ります.そのバージョンidは:11 b 13721088 ea 653042 af 7986 e 0 d 5 b 1 f 1 b 29 a 9 e 9です.
$git reset --hard 11b13721088ea653042af7986e0d5b1f1b29a9e9
HEAD is now at 11b1372 add third line

ヒントを見ると、明らかに成功した.もう一つ見てみましょう
$ git status
On branch master
nothing to commit, working tree clean
$ cat example.txt
This is an example file,
This is creat in Git.
this is third line.

毎回このidを書くのは面倒ではないでしょうか.最初の7文字しか使えませんが、HEAD^で代用するより簡単な方法があります.HEADは現在のバージョンを表して、前のいくつかのバージョン、いくつか書きます^.前のバージョンはHEAD^で、前のバージョンはHEAD^^です.git logを見てみましょう
$ git log
commit 11b13721088ea653042af7986e0d5b1f1b29a9e9 (HEAD -> master)
Author: Lyn4ever 
Date: Fri Jun 7 00:16:12 2019 +0800

add third line

commit 0cecffad8b547533728d2c1a9bef581c6c01f359
Author: Lyn4ever 
Date: Thu Jun 6 23:45:24 2019 +0800

first example file

この中には2つしかないことに気づきました.add fourth lineのバージョンに戻りたいのですが、同じ方法を使っていますが、commit-idが見つかりません.どうすればいいですか.焦らないでgitのような強力な機能は私たちを失望させません.gitバージョン管理の操作履歴をgit reflogで表示できます
$ git reflog
11b1372 (HEAD -> master) HEAD@{0}: reset: moving to 11b13721088ea653042af7986e0d5b1f1b29a9e9
7b0b4f5 HEAD@{1}: commit: add fourth line
11b1372 (HEAD -> master) HEAD@{2}: commit: add third line
0cecffa HEAD@{3}: commit (initial): first example file

このとき、以前のadd fourth lineバージョンのidを見つければいいです.
$git reset --hard 7b0b4f5

これでいいです.git log また3つのバージョンが発見されました
$ git log
commit 7b0b4f5c4c9ffc053db65ed0d7835ae62a27e0b6 (HEAD -> master)
Author: Lyn4ever 
Date: Fri Jun 7 00:23:54 2019 +0800

add fourth line

commit 11b13721088ea653042af7986e0d5b1f1b29a9e9
Author: Lyn4ever 
Date: Fri Jun 7 00:16:12 2019 +0800

add third line

commit 0cecffad8b547533728d2c1a9bef581c6c01f359
Author: Lyn4ever 
Date: Thu Jun 6 23:45:24 2019 +0800

first example file


4)、削除ファイル削除ファイルは、実は別の修正操作で、修正と同じで、まずrm fileで削除して、それからgit commitでワークスペースに提出します.
$rm example.txt

そして状態を見てみましょう
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)

deleted: example.txt

no changes added to commit (use "git add" and/or "git commit -a")

deletedであることがわかりましたが、commitはありません.つまりゾウを冷蔵庫から取り出したが、冷蔵庫のドアを閉めなかった.冷蔵庫のドアを閉めてライブラリから削除します
$ git rm example.txt
rm 'example.txt'

送信
git commit -m "delete example"

そして、このファイルを確認しようとしたら、いなくなりました.
$ cat example.txt
cat: example.txt: No such file or directory

最後に、私たちは前のバージョンで戻ります.
$ git reset --hard 7b0b4f5
HEAD is now at 7b0b4f5 add fourth line

$ cat example.txt
This is an example file,
This is creat in Git.
this is third line.
this is forth line.

tips:削除ファイルも同様に修正操作であり、rm file後でもよいが、gitライブラリにgit rmおよびgit commitが到着する前にgit checkout -- fileaname を使用して取り消すことができる