原來的我對git的認(rèn)識只停留在
git clone ...
git pull
git init
git add .
git comiit -m 'XXX'
git push
只知道這幾個是干嘛的,但是不知道具體是什么原理,自己的代碼現(xiàn)在處于什么階段自己也不清楚,在最近的項目配合當(dāng)中,對git的使用又有了更深的認(rèn)識,所以想要記錄一下,歡迎指教。
在具體說之前我還想要補充一下Linux的一些命令,我對Linux不太清楚,就是用一點記一點:
ls 查看所有子目錄
ls -alf 查看子目錄和詳細(xì)信息
cat test.txt 查看文件內(nèi)容
:set nu 顯示行號
tail -n 3 [文件名] 顯示文件最后3行
英文狀態(tài)下按q 退出git log
mac 終端常用命令和vim普通命令使用可以參考以下鏈接:https://blog.csdn.net/y2888886/article/details/50468198
vim 中按下ESC后輸入:才能進入命令模式!
進入之后輸入:
:wq 然后回車就可以了退出了
git的結(jié)構(gòu)

image.png
git在本地是這樣一個結(jié)構(gòu),圖中標(biāo)記的非常清晰,然后可以通過github新建對應(yīng)項目和本地git項目建立連接,push到線上。
git的命令行操作
'git init'
初始化倉庫,創(chuàng)建一個名為 .git 的子目錄
'git clone [url]'
克隆現(xiàn)有的倉庫,克隆了一個倉庫,命令會自動將其添加為遠程倉庫并默認(rèn)以 “origin” 為簡寫
'git clone [url] [name]'
在克隆遠程倉庫的時候,自定義本地倉庫的名字
'git status'
檢查當(dāng)前文件狀態(tài)
'git add [Untracked files]'
添加跟蹤文件,git status的時候如果有未跟蹤的文件,可以使用此命令添加跟蹤文件
'git add -u <==> git add –update '
提交所有被刪除和修改的文件到數(shù)據(jù)暫存區(qū)
'git add . '
提交所有修改的和新建的數(shù)據(jù)暫存區(qū)
'git add -A <==>git add –all '
提交所有被刪除、被替換、被修改和新增的文件到數(shù)據(jù)暫存區(qū)
.gitignore 忽略文件
文件 .gitignore 的格式規(guī)范如下:
所有空行或者以 # 開頭的行都會被 Git 忽略。
可以使用標(biāo)準(zhǔn)的 glob 模式匹配。
匹配模式可以以(/)開頭防止遞歸。
匹配模式可以以(/)結(jié)尾指定目錄。
要忽略指定模式以外的文件或目錄,可以在模式前加上驚嘆號(!)取反。
'git remote add <shortname> <url> '
添加一個新的遠程 Git 倉庫,同時指定一個你可以輕松引用的簡寫
'git remote -v'
顯示需要讀寫遠程倉庫使用的 Git 保存的簡寫與其對應(yīng)的 URL
'git remote show [remote-name] ==> git remote show origin'
查看遠程倉庫,會列出遠程倉庫的 URL 與跟蹤分支的信息
'git remote rename ==> git remote rename pb paul'
修改一個遠程倉庫的簡寫名。 例如,想要將 pb 重命名為 paul
'git remote rm [remote-name] ==> git remote rm paul'
移除一個遠程倉庫
'git fetch [remote-name] ==> git fetch origin'
git fetch 命令會將數(shù)據(jù)拉取到你的本地倉庫 - 它并不會自動合并或修改你當(dāng)前的工作。
當(dāng)準(zhǔn)備好時你必須手動將其合并入你的工作。
'git push [remote-name] [branch-name] ==> git push origin master'
只有當(dāng)你有所克隆服務(wù)器的寫入權(quán)限,并且之前沒有人推送過時,這條命令才能生效。
當(dāng)你和其他人在同一時間克隆,他們先推送到上游然后你再推送到上游,你的推送就會毫無疑問地被拒絕。
你必須先將他們的工作拉取下來并將其合并進你的工作后才能推送。
`git diff`
要查看尚未暫存的文件更新了哪些部分
`git diff --staged 或者 git diff --cached`
查看已暫存的將要添加到下次提交里的內(nèi)容的差異,
查看已經(jīng)暫存起來的變化:(--staged 和 --cached 是同義詞)
'git log'
查看提交歷史,會按提交時間列出所有的更新
'git log -p'
顯示每次提交的內(nèi)容差異
'git log -p -2'
顯示最近兩次提交的內(nèi)容差異
'git log --stat'
每次提交的簡略的統(tǒng)計信息
--stat 選項在每次提交的下面列出所有被修改過的文件、有多少文件被修改了
以及被修改過的文件的哪些行被移除或是添加了。
在每次提交的最后還有一個總結(jié)。
'git log --pretty=oneline' (常用)
指定使用不同于默認(rèn)格式的方式展示提交歷史
oneline 將每個提交放在一行顯示,查看的提交數(shù)很大時非常有用。
另外還有 short,full 和 fuller 可以用,展示的信息或多或少有些不同
'git log --pretty=format:"%h - %an, %ar : %s"'
format,可以定制要顯示的記錄格式
'git log --pretty=format:"%h %s" --graph'
當(dāng) oneline 或 format 與另一個 log 選項 --graph 結(jié)合使用時尤其有用。
這個選項添加了一些ASCII字符串來形象地展示你的分支、合并歷史
format還有很多用法,有需要的話可以去詳細(xì)了解一下
'git log --all --decorate --graph'
查看合并詳情
更多相關(guān)資料:
https://git-scm.com/book/zh/v2