git命令的基本用法
**首先先安裝一下git,選擇download xxx(版本號) for windows ,默認(rèn)安裝即可,接著要建立一個倉庫 git init,我們在桌面新建一個study文件夾,這個時候鼠標(biāo)右鍵一下Git Bash Here,出現(xiàn)下面的樣子。
**
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study
$
然后我們在$后面輸入git init:
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study
$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/study/.git/
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
執(zhí)行這步操作之后git會幫我們標(biāo)識(master)表示這是主分支倉庫,我們打開文件開一下,會多出一個叫做.git的文件夾,它是隱藏起來的,我們可以用ls-all查看一下
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ ls -all
total 44
drwxr-xr-x 1 Administrator 197121 0 12月 16 16:41 ./
drwxr-xr-x 1 Administrator 197121 0 12月 16 16:35 ../
drwxr-xr-x 1 Administrator 197121 0 12月 16 16:41 .git/
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
這個時候我們就建立好了一個倉庫了,我們試著往里面添加一下文件,添加一個study.txt,內(nèi)容為"Git is great;"
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ cat > study.txt <<EOF
> git is great;
> EOF
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ ^C
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ cat study.txt
git is great;
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
這個時候我們試著看看倉庫的狀態(tài),git status
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
study.txt
nothing added to commit but untracked files present (use "git add" to track)
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
上面這個內(nèi)容告訴我們有一個叫做study.txt的文件沒有添加到倉庫,讓我們用git add<file>這個命名添加一下,我們添加一下:
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ git add study.txt
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
這里什么信息都沒有給出,我們在看一下git status狀態(tài):
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: study.txt
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
這里提示的意思是我們已經(jīng)添加了一個新文件,但是還沒有提交,我們用一下提交的命令 git commit -m"這里是提交的注釋"
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ git commit -m"add study.txt"
[master (root-commit) 17a1296] add study.txt
1 file changed, 1 insertion(+)
create mode 100644 study.txt
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
這里告訴我們已經(jīng)提交了一個study的文件到倉庫了,我們在看一下git status
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ git status
On branch master
nothing to commit, working tree clean
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
這里告訴我們倉庫很干凈,就是沒有什么文件是新添加或者刪除的。
我們把"git is great;"改為"git is great;git is great;git is great;重要事情說三遍"
然后我們在看看git status
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: study.txt
no changes added to commit (use "git add" and/or "git commit -a")
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
他這里告訴我們的意思是:study文件經(jīng)過了修改,你可以選擇添加到倉庫并且提交,或者回退到之前的"git is great;"的版本,我們就不選擇添加了,我們選擇回滾然后查看一下是否回滾成功:
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ git checkout study.txt
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$ cat study.txt
git is great;
Administrator@DESKTOP-BLHO0OQ MINGW64 ~/Desktop/study (master)
$
回滾成功!下面說一下簡單的原理:
上面這四條命令在工作目錄(Worling Directory)、暫存區(qū)域(Stage(Index))和倉庫(History)之間復(fù)制文件:
git add files:將工作目錄的文件復(fù)制到暫存區(qū)域
git commit -m"xxx":將暫存目錄生成快照并提交到History,提交之后暫存區(qū)域就清空了, -m"xx"為本次提交說明
git reset --files:使用當(dāng)前分支上的修改覆蓋暫存區(qū),用來撤銷最后一次git add files。
git checkout --files:把文件從暫存區(qū)域復(fù)制到工作目錄,用來丟棄本地修改
git commit -a:把所以文件的修改提交到暫存區(qū)然后執(zhí)行提交。
git chekout HEAD --files:取出最后一次修改,可以用來進(jìn)行回滾操作。
git stash:在一個分支上操作之后,如果還沒有將修改提交到分支上,此時進(jìn)行切換分支,那么另一個分支上也能看到新的修改。這是因?yàn)闆]有任何未提交的修改。此時就可以安全的切換到其他分支上了。
SSH傳輸設(shè)置
git倉庫和GitHub中心倉庫之間的傳輸是通過SSH加密。
如果工作區(qū)下沒有.ssh目錄,或者該目錄下沒有id_rsa和id_rsa.pub這倆個文件,可以通過以下命令來生成SSH key:
```
$ ssh-keygen -t rsa -C "youremail@example.com"
然后把公鑰id_rsa.pub的內(nèi)容復(fù)制到GitHub "Account settings"的SSH Keys。
中。
* * *
**.gitignore文件**
**忽略以下文件:**
**· 操作系統(tǒng)自動生成的文件,比如縮略圖;**
**· 編譯生成的中間文件,比如Java編譯產(chǎn)生的.class文件;**
**· 自己的敏感信息,存放口令的配置文件**