[TOC] #### 1. 用戶配置 ---- 用戶名和郵箱(只是用在提交記錄中的顯示,和是否有權(quán)限提交代碼無(wú)關(guān),這是很多人的誤區(qū)) ``` # 全局配置用戶名和郵箱 git config --global user.name "辰風(fēng)沐陽(yáng)" git config --global user.email "23426945@qq.com" ``` 查看配置 ``` # 查看全局配置的用戶名和郵箱 git config --global user.name git config --global user.email # 也可以使用 cat ~/.gitconfig ``` #### 2. 命令幫助 ---- ``` # 查看命令全面手冊(cè) git help <command> git <command> --help # 只查看命令的參數(shù)選項(xiàng) git <command> -h ``` #### 3. 流水線操作 ---- ``` # 初始化倉(cāng)庫(kù) git init # 將工作區(qū)文件添加到暫存區(qū) git add . # 將暫存區(qū)文件提交到版本庫(kù) git commit -m 'first commit' # 本地庫(kù)關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù) git remote add origin https://gitee.com/holyking/test-4.git # 將代碼推送到遠(yuǎn)程倉(cāng)庫(kù) git push -u origin master ``` #### 4. 添加到暫存區(qū) ---- ``` # 將工作區(qū)所有文件添加到暫存區(qū) git add . git add -A # 將工作區(qū)已被追蹤的文件添加到暫存區(qū) git add -u # 刪除工作區(qū)文件,并將這次刪除放入暫存區(qū) git rm [file1] [file2] ... # 停止追蹤指定文件,但該文件會(huì)保留在工作區(qū) git rm --cached [file] ``` #### 5. 提交到版本庫(kù) ---- ``` # 將暫存區(qū)文件提交到版本庫(kù) git commit -m <message> # 修正上次提交操作,同時(shí)也會(huì)將暫存區(qū)文件提交到版本庫(kù) git commit --amend -m <message> ``` #### 6. 遠(yuǎn)程倉(cāng)庫(kù)配置 ---- **語(yǔ)法格式** ``` # 添加遠(yuǎn)程倉(cāng)庫(kù)配置 # url 是 git 遠(yuǎn)程庫(kù)地址,name 是給 url 起的別名 git remote add <name> <url> # 修改遠(yuǎn)程倉(cāng)庫(kù)地址 git remote set-url <name> <newurl> # 刪除遠(yuǎn)程倉(cāng)庫(kù)配置 git remote remove <name> ``` **使用示例** ``` # 添加遠(yuǎn)程庫(kù) # 這是平時(shí)使用最多的方式,習(xí)慣上大家都將遠(yuǎn)程庫(kù)的別名設(shè)置為 origin git remote add origin https://gitee.com/holyking/test-4.git ``` #### 7. 拉取遠(yuǎn)程倉(cāng)庫(kù) ---- **將遠(yuǎn)程庫(kù)拉取到本地** ``` # 拉取遠(yuǎn)程庫(kù)的默認(rèn)分支 git clone <url> # 拉取遠(yuǎn)程庫(kù)的指定分支 git clone -b <branch> <url> # 拉取遠(yuǎn)程庫(kù)到指定目錄 git clone <url> <directory> ``` **拉取方式: https 方式** ``` # 永久記住密碼 git config --global credential.helper store # 拉取遠(yuǎn)程庫(kù)時(shí)會(huì)讓輸入代碼托管平臺(tái)的賬號(hào)和密碼 git clone https://gitee.com/holyking/test.git # git 會(huì)將輸入的賬號(hào)密碼存儲(chǔ)在 /.git-credentials 文件中 $ cat ~/.git-credentials https://23426945%40qq.com:liang666@gitee.com # 刪除密碼 git config --global --unset credential.helper ``` **拉取方式: ssh 方式** ```bash # 生成 ssh 公鑰 ssh-keygen -t rsa # 生成的公鑰保存在 ~/.ssh/id_rsa.pub 文件中 cat ~/.ssh/id_rsa.pub # 將生成的公鑰配置到代碼托管平臺(tái),然后使用 ssh 方式拉取倉(cāng)庫(kù)即可 git clone git@gitee.com:holyking/test.git ``` #### 8. 分支管理命令 ---- `git branch` 分支管理 ``` # 查看本地和遠(yuǎn)程分支 git branch -avv # 創(chuàng)建分支 git branch <branch> # 刪除分支 git branch -d <branch> # 強(qiáng)制刪除分支 git branch -D <branch> # 遠(yuǎn)程倉(cāng)庫(kù)刪除了某個(gè)分支,本地倉(cāng)庫(kù)還存在該分支,使用以下兩個(gè)命令任意一個(gè)都可以解決 git fetch --prune git remote prune origin ``` `git checkout` 分支管理 ``` # 切換分支 git checkout <branch> # 創(chuàng)建并切換分支 git checkout -b <branch> # 強(qiáng)制創(chuàng)建分支,然后切換分支 git checkout -B <branch> # 基于標(biāo)簽創(chuàng)建分支 git checkout -b <branch> <tagname> ``` `git push` 分支管理 ``` # 推送到遠(yuǎn)程分支 git push <remote> <branch> # 刪除遠(yuǎn)程倉(cāng)庫(kù)分支 git push <remote> :<branch> ``` #### 9. 標(biāo)簽管理命令 ---- ``` # 查看標(biāo)簽 git tag # 創(chuàng)建標(biāo)簽 git tag v1.0.0 # 創(chuàng)建標(biāo)簽時(shí)添加描述 git tag v1.0.0 -m '正式上線' # 刪除本地標(biāo)簽 git tag -d v1.0.0 # 刪除遠(yuǎn)程倉(cāng)庫(kù)標(biāo)簽 git push origin :v1.0.0 # 將標(biāo)簽推送到遠(yuǎn)程倉(cāng)庫(kù) git push origin v1.0.0 # 將本地所有標(biāo)簽推送到遠(yuǎn)程倉(cāng)庫(kù) git push origin --tags # 查看遠(yuǎn)程倉(cāng)庫(kù)標(biāo)簽 git ls-remote --tags ```