首先咱們新建一個文件夾git ,而後在vscode中打開(git Bash若是沒有配置到全局須要配置一下環境,固然你也能夠直接在git Bash中執行命令),執行在命令行中執行git init 初始化咱們的倉庫,執行後會出現一個.git的文件(默認是隱藏的) 而後咱們在倉庫中在文件夾learngit 中新建一個readme.txt文件 咱們執行git status查看咱們倉庫的狀態 git
執行 git reset --hard HEAD^ 命令,咱們能夠回退到上一個版本庫,git reset --hard HEAD^^回退到上上個版本,以此類退,要回退到前一百個版本咱們能夠執行git reset --hard HEAD~100 命令,很是方便的。github
下圖爲git倉庫的基本原理:index爲暫存區,HEAD指向master主分支 vim
接下來咱們就將本地倉庫提交到遠程github上去,這邊我再github上新建一個testgit的一個倉庫,而後將本地倉庫與github遠程倉庫創建鏈接,執行這條命令 git remote add origin github.com/ganjianghua… 接下來咱們將本地倉庫推送到github上去,執行 git push -u origin master (第一次提交加一個-u)這條命令便可提交到github上,此時若是出現如同所示的錯誤,那是由於你沒有將github倉庫上原有的readme.txt等文件不在你工做目錄上。緩存
執行git branch命令能夠查看咱們倉庫的分支,在開發的時候分支時很是有用的,好比咱們能夠建立開發分支,測試分支等,等功能完成後再合併到主分支上。 執行git branch dev命令,建立一個開發分支,而後咱們執行git checkout dev命令,切換到開發分支上,在開發分 支上對文件進行修改,不會改變其餘分支上的文件,當咱們修改完成後,咱們能夠合併分到主分支上,這樣就完成了文件的修改,分支對咱們是很是有用的。咱們還能夠執行git checkout -b test 建立分支並切換到該分支,這樣就 少執行一行命令。當咱們項目完成後,咱們執行git merge test,將test分支合併到當前分支上去,如同所示學習
解決一些衝突 當咱們在分支上修改了文件內容,而後咱們又切換到主分支上進行了修改,而後咱們合併分支,就會產生一個衝突測試
給上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個文件
// 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分支的全部內容