資料來源: Git教程
創(chuàng)建版本庫
- 創(chuàng)建一個空目錄
$ mkdir demo $ cd demo
- 使用
git init
命令把這個目錄變成Git可以管理的倉庫韭邓,初始化后目錄下面會多一個.git
目錄$ git init
Git命令
-
添加文件泄鹏、確認提交花枫、查看狀態(tài)等
$ git add <文件名> // 添加文件到倉庫 $ git add . :他會監(jiān)控工作區(qū)的狀態(tài)樹聚唐,使用它會把工作時的所有變化提交到暫存區(qū)洛史,包括文件內(nèi)容修改(modified)以及新文件(new)秘豹,但不包括被刪除的文件腊状。 $ git add -u :他僅監(jiān)控已經(jīng)被add的文件(即tracked file)诱咏,他會將被修改的文件提交到暫存區(qū)。add -u 不會提交新文件(untracked file)缴挖。(git add --update的縮寫) $ git add -A :是上面兩個功能的合集(git add --all的縮寫) $ git commit -m "xxx" // 提交袋狞,-m 后面輸入的是本次提交的說明,commit可以一次提交很多文件 $ git status // 查看git倉庫狀態(tài) $ git diff <文件名> // 查看difference $ git log // 查看日志 查看簡要信息映屋,帶上--pretty=oneline
-
回退
$ git reset --hard HEAD^ // HEAD表示當(dāng)前版本苟鸯,HEAD^上一個版本,HEAD^^上上個版本秧荆,HEAD~100往上100個版本倔毙,直接寫版本號版本號的前幾 個數(shù)字 $ git reflog // 查看你每一次的git操作 $ git checkout -- <文件名> // 把文件在工作區(qū)的修改全部撤銷,返回到最近一次git commit或git add時的狀態(tài) $ cat <文件名> // 查看文件內(nèi)容 $ git reset HEAD <文件名> // 可以把暫存區(qū)的修改撤銷掉乙濒,重新放回工作區(qū)
-
刪除
$ rm <文件名> // 刪除文件 $ git rm <文件名> // git刪除文件
-
遠程倉庫 原文
- 創(chuàng)建SSH Key陕赃。在用戶主目錄下,看看有沒有.ssh目錄颁股,如果有么库,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果已經(jīng)有了甘有,可直接跳到下一步诉儒。如果沒有,打開Shell(Windows下打開Git Bash)亏掀,創(chuàng)建SSH Key
$ ssh-keygen -t rsa -C "youremail@example.com"
回車忱反,一直選默認值,密碼設(shè)置看你心情
$ git push -u origin master // 把本地庫的內(nèi)容推送到遠程滤愕。加上了-u參數(shù)温算,Git不但會把本地的master分支內(nèi)容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關(guān)聯(lián)起來间影,在以后的推送或者拉取時就可以簡化命令 $ git clone git@github.com:git用戶名/遠程倉庫名稱 // ssh協(xié)議克隆一個遠程倉庫到本地 $ git clone https://github.com/用戶名/遠程倉庫名稱 // http協(xié)議克隆一個遠程倉庫到本地
git add xx命令可以將xx文件添加到暫存區(qū)注竿,如果有很多改動可以通過 git add -A .來一次添加所有改變的文件。
注意 -A 選項后面還有一個句點。 git add -A表示ssh添加所有內(nèi)容巩割, git add . 表示添加新文件和編輯過的文件不包括刪除的文件; git add -u 表示添加編輯或者刪除的文件裙顽,不包括新添加的文件。
-
分支管理
$ git checkout -b dev // 創(chuàng)建分支dev宣谈,相當(dāng)于下面兩條命令 $ git branch dev $ git checkout dev $ git branch // 查看當(dāng)前分支 $ git merge dev // 合并分支 帶參數(shù)--no-ff 禁用 Fast forward模式愈犹,這種方式合并會提交一次commit,所以需要帶上描述信息-m $ git branch -d dev // 刪除分支 -d 換成 -D可以強行刪除沒有合并的分支 $ git log --graph // 查看分支的合并情況 可以帶參數(shù)--pretty=oneline --abbrev-commit $ git stash // 把當(dāng)前工作現(xiàn)場儲藏起來蒲祈,去做其他事情甘萧,比如修復(fù)bug $ git stash list // 查看儲藏的工作現(xiàn)場 $ git stash apply // 恢復(fù)工作現(xiàn)場,但不刪除stash的內(nèi)容 $ git stash pop // 恢復(fù)工作現(xiàn)場梆掸,同時刪除stash的內(nèi)容 $ git remote // 查看遠程庫信息 $ git checkout -b dev origin/dev //獲取遠程倉庫的分支 $ git pull // 獲取遠程倉庫的內(nèi)容 $ git branch --set-upstream dev origin/dev // 將本地的分支和遠程的分支關(guān)聯(lián)起來
-
標簽管理
$ git tag v1.0 // 打標簽 $ git tag // 查看所有標簽 $ git show <tagname> // 查看標簽xinxi $ git tag -a v0.1 -m "version 0.1 released" 3628164 // 帶說明的標簽 , -a 標簽名牙言,-m 說明 $ git tag -s v0.2 -m "signed version 0.2 released" fec145a // -s 用私鑰簽名 $ git tag -d v0.1 // 刪除標簽 $ git push origin v1.0 // 推送標簽到遠程庫 $ git push origin --tags // 推送全部標簽到遠程庫 $ git push origin :refs/tags/v0.9 // 刪除遠程庫標簽酸钦,需要先刪除本地標簽
$ git config --list // 列出Git所有的設(shè)置