1、本地倉庫
1须肆、查看電腦上有沒有安裝Git
$ git
2煎源、創(chuàng)建倉庫
創(chuàng)建一個空目錄learngit
$ cd learngit
$ git init
3稳衬、把文件添加到倉庫
先把文件readme.txt拖入learngit目錄下
$ git add readme.txt
$ git commit -m "此次更新的內(nèi)容描述"
4、查看當前倉庫的狀態(tài)蚀狰,也就是告訴我們有文件修改了
$ git status
5、查看倉庫內(nèi)容的變化职员,也就是查看修改的哪些內(nèi)容
$ git diff readme.txt
6麻蹋、查看版本歷史記錄,也就是提交歷史
$ git log
7焊切、查看版本歷史的簡易記錄
$ git log --pretty=oneline
$ git log --pretty=oneline --abbrev-commit(更為建議的記錄)
8扮授、回退到上個版本
$ git reset --hard HEAD^
9、回推或到達某個指定的版本
$ git reset --hard eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
10专肪、查看你的每一次git命令刹勃,用來處理回退太多版本之后,git log找不回某個版本了嚎尤,也就是命令歷史
$ git reflog
11荔仁、顯示目錄或具體文件列表
$ ls -1
每行列出一個文件,即以單列形式列出芽死。
$ ls -a
列出所有文件乏梁,包括隱藏文件。
$ ls -la
所有文件的長格式列表(含權(quán)限关贵、所有權(quán)遇骑、大小和修改日期)。
12揖曾、撤銷還沒有提交到緩存區(qū)的修改(針對撤銷沒有git add的修改)
$ git checkout -- readme.txt
13落萎、撤銷已經(jīng)提交到緩存區(qū)的修改(針對撤銷已經(jīng)git add,但是沒有git commit的修改)
$ git reset HEAD readme.txt
$ git checkout -- readme.txt
14炭剪、刪除文件(如果刪除后悔了练链,也可以用上面的撤銷方法)
$ rm test.txt(或者手動在文件夾中刪除test.txt文件)
$ git rm test.txt
$ git commit -m "刪除test.txt文件"
15、提交所有的變化到緩存念祭,無論是增加兑宇、修改還是刪除
$ git add .
2、遠程倉庫
1粱坤、把本地倉庫推送到遠程倉庫
$ git remote add origin [https://github.com/zhizunbaoyinhao/learnGit.git](https://github.com/zhizunbaoyinhao/learnGit.git)
$ git push origin master
(注:第一次推送的話隶糕,要用$ git push -u origin master)
2、從遠程庫克隆
$ cd /Users/yinhao/Desktop
$ git clone [https://github.com/zhizunbaoyinhao/TestClone](https://github.com/zhizunbaoyinhao/TestClone)
3站玄、查看遠程倉庫信息枚驻,遠程倉庫的默認名稱是origin
$ git remote
$ git remote -v(顯示更詳細的信息)
4、抓取最新的提交
$ git pull
5株旷、指定本地dev分支與遠程origin/dev分支的鏈接(根據(jù)$ git pull失敗的提示再登,有下面的方式)
$ git branch *--set-upstream-to=origin/dev dev*
3尔邓、分支管理
1、創(chuàng)建并切換到一個分支
$ git checkout -b dev [新版$ git switch -c dev]
或下面兩句锉矢,功能一樣的
$ git branch dev(創(chuàng)建分支)
$ git checkout dev(切換分支) [新版$ git switch dev]
2梯嗽、查看當前分支
$ git branch
3、查看所有分支沽损,包括遠程分支
$ git branch -a
4灯节、把dev分支的工作成果合并到master分支上(先切換到master分支再操作)
$ git merge dev
5、刪除本地分支
$ git branch -d dev
6绵估、如果沒有合并分支炎疆,強行刪除
$ git branch -D dev
7、刪除遠程分支
$ git push origin --delete dev
8国裳、解決沖突
$ git merge dev(如果發(fā)現(xiàn)有沖突CONFLICT形入,根據(jù)提示的出錯文件,合并解決沖突)
$ git add readme.txt
$ git commit -m "解決沖突"
9缝左、分支策略(如果我們直接使用$ git merge dev合并分支亿遂,Git使用Fast forward模式,那么$git log的時候盒使,就無法看出分支合并的走向崩掘,看起來就好像只有master分支,我們可以使用--no-ff的方式少办,強制禁用Fast forward模式)
$ git merge --no-ff -m "merge with no-ff" dev
10苞慢、bug分支(假如正在dev分支開發(fā),需要修改一個master的bug)
$ git status(dev分支有需要提交的東西)
$ git stash(將dev分支的東西儲藏起來)
$ git switch master(切換到master分支)
$ git switch -c bug(新建一個bug分支)
$ git add .
$ git commit -m "修復bug" (提交bug分支上的修改)
$ git switch master(切換到master分支)
$ git merge --no-ff -m "修復bug" bug(將bug分支上修改的東西合并到master分支上)
$ git switch dev(切換到dev分支)
$ git stash list(發(fā)現(xiàn)儲藏列表)
$ git stash pop(刪除儲藏內(nèi)容英妓,恢復dev分支之前的工作狀態(tài))
$ git stash list(發(fā)現(xiàn)儲藏列表已經(jīng)沒有了)
(后面就可以繼續(xù)dev的開發(fā)挽放、提交、合并等工作了)
4蔓纠、標簽
1辑畦、查看所有標簽
$ git tag
2、打標簽(先切換到相應的分支)
$ git checkout master
$ git tag v1.0
3腿倚、找到之前的某個版本打標簽
$ git log --pretty=oneline --abbrev-commit(先找到版本歷史的簡單記錄)
$ git tag v0.9 ec727a2(根據(jù)commit id打標簽)
4纯出、查看標簽信息(因為標簽不是按時間排序,是按照字母排序的敷燎,所以$ git tag不容易看標簽具體信息)
$ git show v0.9
5暂筝、打帶有說明的標簽
$ git tag -a v2.0 -m "2.0版本說明"
$ git tag -a v2.0 -m "2.0版本說明" ec727a2
6、刪除本地標簽
$ git tag -d v1.0
7硬贯、刪除遠程標簽(先刪除本地標簽焕襟,再刪除遠程標簽)
$ git tag -d v1.0
$ git push origin :refs/tags/v1.0
8、推送某個標簽到遠程
$ git push origin v1.0
9饭豹、一次性推送全部尚未推送到遠程的本地標簽
$ git push origin --tags