一、git中的三個區(qū) :
工作區(qū)、暫存區(qū)、Git倉庫
二、git中的三種狀態(tài) :
- 已修改 (modified):表示修改了文件、但還沒將修改的結(jié)果放到暫存區(qū)
- 已暫存 (staged) :表示對已修改文件的當(dāng)前版本做了標(biāo)記、使之包含在下次提交的列表中、放到暫存區(qū)
- 已提交(committed):表示文件已經(jīng)安全地保存在本地的Git倉庫中
三、git中的工作流程 :
- 在工作區(qū)中修改文件
- 將你想要下次提交的更改進(jìn)行暫存
- 提交更新,找到暫存區(qū)的文件,將快照永久性存儲到Git倉庫
四、git配置:
1、配置用戶名和郵箱地址:
git config --global user.name 名稱
git config --global user.email 郵箱
2、檢查配置信息
查看所有的 全局配置項
git config --list --global
查看指定的全局配置項
git config user.name
git config user.email
3、獲取幫助信息
git config -h
五、Git倉庫的創(chuàng)建:
1、將本地倉庫轉(zhuǎn)化為Git倉庫
git init
2、從服務(wù)器中克隆一個已存在的Git倉庫
六、Git工作區(qū)文件的4中狀態(tài):
- 檢查文件的狀態(tài): git status git status -s/ - - short
1、未跟蹤(untracked):新建的文件
2、未修改(unmodified):工作區(qū)中文件的內(nèi)容和Git倉庫中文件的內(nèi)容保持一致
3、已修改(modified):工作區(qū)中文件的內(nèi)容和Git倉庫中文件的內(nèi)容不一致
4、已暫存(staged):工作區(qū)中被修改的文件已被放到暫存區(qū),準(zhǔn)備將修改后的文件保存到Git倉庫中
七、Git的基本操作:
- 跟蹤/暫存新文件:
git add . (目錄下的所有文件)
git add index.html 暫存index.html 文件
- 提交已暫存的文件:
git commit -m “更新的內(nèi)容”
- 對工作區(qū)的文件進(jìn)行撤銷:
git checkout - - index.html
- 取消已暫存的文件
git reset HEAD 要移除的文件的名稱
- 跳過使用暫存區(qū)
git commit -a -m “描述消息”
- 從Git倉庫中移除文件
從git倉庫和工作區(qū)中同時刪除
git rm -f index.js
從git倉庫中刪除,保留工作區(qū)中的文件
git rm - -cached index.css
- git忽略文件(.gitignore )
1、以#開頭 的是注釋
2、以/結(jié)尾的是目錄
3、以/開頭防止遞歸
4、以!開頭表示取反
5、以簡化的正則表達(dá)式進(jìn)行文件和文件夾的匹配
- 忽略規(guī)則:
.a 忽略所有的.a文件
!lib.a 跟蹤所有的lib.a 即便你在前面忽略了 .a 文件
/TODO 只忽略當(dāng)前目錄下的TODO文件,而不忽略subdirr/TODO
build/ 忽略任何目錄下 名為 build 的文件夾
doc/*.txt 忽略doc/notes.txt,但不忽doc/server/arch.txt
doc/**/*pdf 忽略doc/目錄及所有子目錄下的.pdf文件
- 查看提交歷史
git log
- 回退到指定的版本:
git log - - prrtty=oneline 在一行上展示所欲的提交歷史
git erset - -hard <CommitID> 根據(jù)指定的提交 ID 回退到指定版本
git reflog - - prrtty=oneline 查看命令操作的 歷史
git reset - -hard <CommitID> 再次根據(jù) 最新的提交ID 跳轉(zhuǎn)到最新的 版本
八、分支:
1、master分支:
用來保存和記錄整個項目已完成的功能代碼
2、查看分支列表:
git branch
3、新建分支
git branch 分支名稱
4、切換分支
git checkout 分支名稱
5、快速創(chuàng)建和切換分支
git checkout -b 分支名稱
6、合并分支
git checkout master
git merge login
7、刪除分支(不在被刪除的分支上面)
git branch -d 分支名稱
8、遇沖突的分支合并
進(jìn)行第6步,
手動 解決之后:
git add .
git commit -m “解決了分支合并沖突的問題”
9、本地分支推送到遠(yuǎn)程倉庫
-u 表示把本地分支和遠(yuǎn)程分支進(jìn)行關(guān)聯(lián),只在第一次推送的時候需要帶 -u 參數(shù)
git push -u 遠(yuǎn)程倉庫的別名 本地分支名稱: 遠(yuǎn)程分支名稱
git push -u origin payment:pay
10、查看遠(yuǎn)程倉庫中所有的分支列表
git remote show 遠(yuǎn)程倉庫名稱
11、跟蹤分支
從遠(yuǎn)程倉庫中,把遠(yuǎn)程分支下載到本地倉庫中。
git checkout 遠(yuǎn)程分支的名稱
git checkout -b 本地分支名稱 遠(yuǎn)程倉庫名稱/遠(yuǎn)程分支名稱
12、拉取遠(yuǎn)程分支的最新代碼
git pull
13、刪除遠(yuǎn)程分支
git psh 遠(yuǎn)程倉庫名稱 - - delete 遠(yuǎn)程分支名稱