usage: git [--version] [--help] [-c name=value] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p|--paginate|--no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>] 最經常使用的 git 命令有: add 添加文件內容至索引 bisect 經過二分查找定位引入 bug 的變動 branch 列出、建立或刪除分支 checkout 檢出一個分支或路徑到工做區 clone 克隆一個版本庫到一個新目錄 commit 記錄變動到版本庫 diff 顯示提交之間、提交和工做區之間等的差別 fetch 從另一個版本庫下載對象和引用 grep 輸出和模式匹配的行 init 建立一個空的 Git 版本庫或從新初始化一個已存在的版本庫 log 顯示提交日誌 merge 合併兩個或更多開發歷史 mv 移動或重命名一個文件、目錄或符號連接 pull 獲取併合並另外的版本庫或一個本地分支 push 更新遠程引用和相關的對象 rebase 本地提交轉移至更新後的上游分支中 reset 重置當前HEAD到指定狀態 rm 從工做區和索引中刪除文件 show 顯示各類類型的對象 status 顯示工做區狀態 tag 建立、列出、刪除或校驗一個GPG簽名的 tag 對象 命令 'git help -a' 和 'git help -g' 顯示可用的子命令和一些指南。參見 'git help <命令>' 或 'git help <指南>' 來查看給定的子命令幫助或指南
git中的結構組成包括:
工做區(working directory),它就是咱們工做的目錄區域
版本庫(Repository),由版本控制建立的.git文件目錄
git倉庫中最重要的是index緩存區,在使用git add時它其實是將文件改動添加到了倉庫緩存區中,另外一個文件爲master它是git自動建立的惟一一個master分支,在使用git commit提交時實際上時將改動提交了主分支上master,還有一個HEAD指針,它直接指向master中的最新版本,版本切換就是調用了HEAD指針指向要切換的版本html
(1)建立版本庫
#配置我的信息
git config --global user.name "username"
git config --global user.email "youremail@163.com"git
#建立版本庫
mkdir learngit
cd learngit
git initgithub
(2)提交到倉庫
git add test.py #將文件提交到索引index
-n #只顯示文件不添加文件
-v #顯示詳細
-f #強制添加被忽略的文件
-i #在樹結構中添加修改文件內容
git commit -m 'add test' #提交到倉庫windows
(3)查看工做區狀態
git status
#查看修改的內容
git diff test.py
git diff HEAD -- test.py緩存
#查看提交歷史
git log
git log --pretty=oneline #簡短輸出信息
git log --graph --pretty=oneline --abbrev-commit #查看分支合併狀況app
#退回到上一個版本
git reset --hard HEAD^ssh
#前進到下一個版本
git reflog #查看歷史命令,找到commit_id
git reset --hard 3b13954 #經過ID前進到下一個版本ide
#撤銷修改
#當文件只是在工做區修改了,要撤銷修改使用一下命令
git checkout -- test.py
#當文件修改提交到緩存區後,想要撤銷修改須要先從緩存區丟棄修改而後再在工做區撤銷便可
git reset HEAD test.py
git checkout -- test.py
#當文件修改被提交到版本庫後,想要撤銷修改就須要使用版本回退了
git reset --hard HEAD^fetch
#刪除文件
#若是文件被刪除了須要在版本中將文件刪除
rm test.txt
git rm test.txt
git commit -m 'remove test.txt'
#若是文件是被誤刪的,可使用如下命令恢復或者退回到上一個版本
git checkout -- text.txt #若是文件還在版本庫中使用此命令
git reset --hard HEAD^ #若是文件被完全刪除了能夠回退到上要給版本網站
(4)遠程倉庫
#1.要添加到遠程倉庫首先須要註冊一個github帳號
#2.在本地建立SSH key執行如下命令,一路回車便可,它會在用戶目錄下生成一個.ssh文件夾,裏面建立了兩個文件id_rsa爲私鑰文件本身使用的,一個是id_rsa.pub爲公鑰文件,須要上傳到github網站上
ssh-keygen.exe -t rsa -C "920664709@163.com"
#3.登錄github帳號,選擇設置,在設置中找到SSH keys而後點擊add SSH Key添加公鑰,隨便寫個標題,將咱們建立的公鑰內容粘貼進來,保存便可
#4.關聯遠程庫
#在命令行建立新的存儲庫
echo "#spider-test" >> README.md
git init
git add README.md
git commit -m "first commit"
#關聯遠程存儲庫
git remote add origin git@github.com:Qithird/Spider-12306.git
#查看遠程倉庫的名字,-v顯示詳細
git remote -v
#5.推送分支的全部內容
git push -u origin master
#6.推送更新
git push origin master
#7.克隆遠程倉庫
git clone git@github.com:Qithird/Spider-12306.git
(5)分支管理
#每次提交git會將修改提交到master分支上,HEAD指針指向master,而當咱們建立新分支後HEAD則指向新分支,表示當前分支
#查看分支
git branch
#建立分支
git branch <name>
#切換分支
git checkout <name>
#建立+切換分支
git checkout -b <name>
#合併某分支到當前分支
git merge <name>
#刪除分支
git branch -d <name>
#查看分支合併圖
git log --graph
#開發中不要在master分支上開發,而是在dev分支上,在合併分支是加上--no-ff參數能夠用普通模式合併,合併後歷史記錄有分支信息
#暫時存儲分支,如在工做中接到臨時任務須要處理,而當前的分支任務沒完成沒法提交時,可使用stash功能來將當前工做現場儲藏起來,等完成後再恢復如今便可
git stash #儲藏現場分支
git stash list #查看stash
git stash pop #恢復現場並刪除stash
git stash apply #只恢復如今不刪除stash,繼續能夠上面的命令刪除stash
#刪除一個沒有被合併過的分支使用-D強行刪除
git branch -D <name>
#推送分支
git push origin branch-name
#抓取遠程的新提交
git pull
#創建本地分支與遠程分支的關聯
git branch --set-upstream branch-name origin/branch-name
#windows系統下命令行報錯:warning: LF will be replaced by CRLF in readme.txt.The file will have its original line endings in your working directory.#解決方法:rm -rf .gitgit config --global core.autocrlf false