git的使用說明

首先咱們新建一個文件夾git ,而後在vscode中打開(git Bash若是沒有配置到全局須要配置一下環境,固然你也能夠直接在git Bash中執行命令),執行在命令行中執行git init 初始化咱們的倉庫,執行後會出現一個.git的文件(默認是隱藏的) 而後咱們在倉庫中在文件夾learngit 中新建一個readme.txt文件 咱們執行git status查看咱們倉庫的狀態 git

此時顯示紅色,咱們能夠看到有多少文件沒有被添加到暫存去以及有多少文件沒有被提交 執行git add readme.txt命令,將文件添加到暫存區,git add . 是將全部未被添加到暫存區的文件都提交到暫存區
,咱們能夠看到此時變成綠色說明以及添加到暫存區。 git commit -m 'git的學習' 執行這條命令能夠將在暫存區的文件提交到本地倉庫中去,-m後面是這次提交的描述 此時再執行git status 咱們發現暫存區沒有沒被提交的文件了
而後咱們修改一下readme.txt文件,執行git diff readme.txt,咱們能夠查看修改的內容
執行git log 命令,咱們能夠查看咱們倉庫的版本,方便咱們之後回到以前的版本,圖中黃色部分是咱們倉庫版本的id
git reflog 這條命令能夠將查看咱們全部的修改,git log--pretty=oneline git log --graph --pretty=oneline 這兩條命令,執行第一條命令可讓記錄一行一行的顯示處理,執行第二條讓記錄以圖表方式顯示,便於咱們的查看

執行 git reset --hard HEAD^ 命令,咱們能夠回退到上一個版本庫,git reset --hard HEAD^^回退到上上個版本,以此類退,要回退到前一百個版本咱們能夠執行git reset --hard HEAD~100 命令,很是方便的。github

也能夠執行 git reset --hard d3e65(id取前五位就能夠)回到某一個指定的版本

下圖爲git倉庫的基本原理:index爲暫存區,HEAD指向master主分支 vim

加入咱們將文件中的代碼修改的很亂,咱們能夠執行git checkout -- readme.txt 這條命令,將文件回退到以前暫存區的那個版本,假如你已經將文件add到暫存區,此時咱們執行git checkout -- readme.txt 命令,將文件回退到沒有添加到暫存區時的狀態,若是要刪除某個文件咱們能夠執行這條命令 rm a.txt

接下來咱們就將本地倉庫提交到遠程github上去,這邊我再github上新建一個testgit的一個倉庫,而後將本地倉庫與github遠程倉庫創建鏈接,執行這條命令 git remote add origin github.com/ganjianghua… 接下來咱們將本地倉庫推送到github上去,執行 git push -u origin master (第一次提交加一個-u)這條命令便可提交到github上,此時若是出現如同所示的錯誤,那是由於你沒有將github倉庫上原有的readme.txt等文件不在你工做目錄上。緩存

咱們能夠執行git pull --rebase origin master命令,將代碼合併,這樣咱們就能夠成功推送文件到github上去 若是咱們時使用git clone github.com/ganjianghua… clone 命令將咱們項目從github上拉下來。

執行git branch命令能夠查看咱們倉庫的分支,在開發的時候分支時很是有用的,好比咱們能夠建立開發分支,測試分支等,等功能完成後再合併到主分支上。 執行git branch dev命令,建立一個開發分支,而後咱們執行git checkout dev命令,切換到開發分支上,在開發分 支上對文件進行修改,不會改變其餘分支上的文件,當咱們修改完成後,咱們能夠合併分到主分支上,這樣就完成了文件的修改,分支對咱們是很是有用的。咱們還能夠執行git checkout -b test 建立分支並切換到該分支,這樣就 少執行一行命令。當咱們項目完成後,咱們執行git merge test,將test分支合併到當前分支上去,如同所示學習

若是開發完了,那咱們能夠執行git branch -D test命令,將分支刪除,分支是否是很方便呢?

解決一些衝突 當咱們在分支上修改了文件內容,而後咱們又切換到主分支上進行了修改,而後咱們合併分支,就會產生一個衝突測試

此時咱們選擇正確的代碼,刪除掉不須要的,而後咱們在提交就ok了 若是咱們須要停下手頭的工做,去解決一個bug,咱們git stash讓分支暫時中止,咱們去解決bug完後再回來,使用 git stash list 命令咱們能夠查看咱們當時暫停下來的工做,而後執行git stash pop命令,咱們就能夠繼續以前的 工做,是否是很是nice呢? 當咱們在主分支上添加了1,2兩個文件,而後又在dev分支上添加5,6文件,後面又切換到主分支上添加了3,4文件 ,那麼咱們合併後將會是1,2,5,6,3,4這樣的提交的順序,那咱們能夠更換它的基點,在主分支上執行 git rebase master 這條命令,咱們就能夠把幾點調整到master最後提交的記錄爲幾點,這樣順序就變爲1,2,3,4,5,6 這樣咱們就能夠將git的提交記錄變得更簡單,更清爽。

給上git操做的命令 git學會了嗎? 寫的很差歡迎留言指出,但願能夠幫到你。 $ cd:e // 切換盤符命令行

$ cd .. // 回到文件上一層(注: cd與..中間有個空格)3d

$ cd ~ // 回到當前目錄的主目錄code

$ mkdir Git // 建立文件夾Gitcdn

$ touch fileName // 新建文件

$ vi fileName // 編輯文件

$ press i button // 開始進入編輯狀態

$ press the Esc button // 退出vim編輯區

$ :wq // 退出編輯狀態, 回到命令窗口

$ mkdir learngit // 建立文件夾learngit

$ pwd // 顯示當前路徑/e/Git/learngit

$ git init // 將當前目錄變成一個Git能夠管理的倉庫

$ touch+文件名 // 直接新建一個文件

$ git add readme.txt // 將文件添加到Git倉庫(把文件修改添加到暫存區)

$ git commit -m "wrote a readme.txt." // 將文件提交到倉庫(把暫存區的全部內容提交到當前分支)

$ git add file1.txt // 添加file1.txt文件

$ git add file2.txt file3.txt // 同時添加file2.txt和file3.txt兩個文件

$ git commit -m "add 3 files." // 一次性提交3個文件

  1. 時光穿梭機:

// 2.1 版本回退

$ git status // 查看當前倉庫狀態(倉庫下的工做區文件是否被修改過)

$ git diff readme.txt // 查看工做區的readme.txt與緩存區的readme.txt的區別

$ git log // 查看最近到最遠的提交記錄(詳情: commit id + Author + Date + comment)

$ git log --pretty=oneline // 查看最近到最遠的提交記錄(簡寫:commit id + comment)

$ git reset --hard HEAD^ // 回到上一個版本(HEAD: 當前版本,HEAD^: 上一個版本,HEAD~100: 往上100個版本)

$ git reset --hard 1234567 // 回到指定版本號commit id(此處:commit id 假設爲1234567******,Git會根據commit id的前幾位自動尋找對應的版本)

$ cat readme.txt // 查看readme.txt的內容

$ git reflog // 查看每一次命令記錄歷史,確保能回到任意版本  

// 2.2 工做區與暫存區

$ git diff readme.txt // 比較工做區(working directory)和暫存區(stage/index)的區別

$ git diff --cached // 比較暫存區(stage/index)和分支(master)的區別

// 2.3 管理修改(詳見1. 建立版本庫中的命令)

// 2.4 撤銷修改

$ git checkout -- readme.txt // 撤銷修改:1. 文件在添加到緩存區前修改,則回退到原工做區狀態;2. 文件在添加到緩存區後修改,則回退到原緩存區狀態。也便是將readme.txt撤回到最近一次git add或git commit狀態(注:--表示在當前分支,若是沒有,則切換到另外一個分支)

$ cat readme.txt // 查看文件內容

$ git reset HEAD readme.txt // 1. 回退到最新版本;2. 將暫存區的修改回退到工做區

// 2.5 刪除文件

$ rm test.txt // 刪除工做區文件(相似於手動刪除)

$ git status // 查看當前工做區與緩存區狀態

$ git rm test.txt // 狀況1:確認刪除

$ git commit -m "remove test.txt" // 狀況1:確認刪除後,提交到版本庫

$ git checkout -- readme.txt // 狀況2:誤刪,須要回退(即:用版本庫裏的版本替換工做區的版本)

// 3. 遠程倉庫

// 3.1 添加遠程庫

git remote add origin git@server-name:path/repo-name.git // 關聯一個遠程倉庫,如:$ git remote add origin git@github.com:ChrisLeejing/learngit.git

git push -u origin master // 第一次推送master分支的全部內容

相關文章
相關標籤/搜索