下面以從github作為遠(yuǎn)程倉(cāng)庫(kù)為例 gitee 只需替換對(duì)應(yīng)倉(cāng)庫(kù)鏈接禁荒,有關(guān)Git的相關(guān)教學(xué)可以參考廖雪峰老師的Git教程泡挺,這里不多介紹了编整。當(dāng)然以下命令行只是方便你在沒(méi)有圖形化工具的情況下知道如何操作Git族沃,個(gè)人覺(jué)得很有必要知道,對(duì)理解Git原理也會(huì)有幫助
- 配置git
Git用戶名
郵箱git config --global user.name "Your Name"
Git顯示顏色git config --global user.email "email@example.com"
git config --global color.ui true
- 初始化
mkdir project cd project git init
- 添加文件并提交代碼(
git commit
之前需先git add
沧踏,commit
只負(fù)責(zé)提交暫存區(qū)
的內(nèi)容)git add README.md(文件名) # git add -f README.md(-f為強(qiáng)制添加,可提交.gitignore中配置的文件) git commit -m "提交備注"
- 查看當(dāng)前倉(cāng)庫(kù)狀態(tài)
git status
- 對(duì)比文件改動(dòng)內(nèi)容
git diff README.md(文件名)
- 查看Git日志
git log
- 版本回退到第N個(gè)版本前
git reset --hard HEAD~N
- 版本回退(切換)到指定版本(git每次提交的唯一十六進(jìn)制的id巾钉,
git log
或者git reflog
(記錄每次一提交的信息)可以查看)git reset --hard e475afc93c209a690c39c13a46716e8fa000c366(版本號(hào)翘狱,這只是個(gè)例子,此值不必寫(xiě)全砰苍,只要能讓git知道是哪個(gè)把那本就行潦匈,一般寫(xiě)5-6位即可)
- 撤銷(xiāo)修改(撤銷(xiāo)到最近一次
git add
或git commit
之前的狀態(tài))git checkout -- README.md(文件名)
- 撤銷(xiāo)暫存區(qū)的修改(
git commit
之前)git reset HEAD README.md(文件名)
- 刪除文件(確定刪除需要
git commit
,若誤刪可以使用git checkout -- 文件名
)git rm README.md(文件名)
- 查看遠(yuǎn)程倉(cāng)庫(kù)連接信息(fetch抓取赚导,push推送)
git remote -v
- 關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
git remote add origin git@github.com:username/xxxx.git
- 推送到遠(yuǎn)程庫(kù)(第一次推送
master
分支)git push -u origin master
- 推送到遠(yuǎn)程庫(kù)
git push origin 分支名
- 克隆代碼
或git clone https://github.com/username/xxxx.git
git clone git@github.com:username/xxxx.git
- 克隆指定分支代碼
git clone -b 分支名 https://github.com/username/xxxx.git
- 創(chuàng)建分支
git branch 分支名
- 切換分支
老版本
新版本git checkout 分支名
git switch 分支名
- 創(chuàng)建分支并切換
老版本
新版本git checkout -b 分支名
git switch -c 分支名
- 查看分支
git branch
- 查看所有分支(本地+遠(yuǎn)程茬缩,遠(yuǎn)程分支會(huì)以紅色標(biāo)出,當(dāng)前分支前面會(huì)標(biāo)一個(gè)
*
號(hào))git branch -a
- 合并某分支到當(dāng)前分支辟癌,若存在沖突會(huì)提示手動(dòng)修改后再提交寒屯,
git merge
默認(rèn)為fast forward
模式
fast forward
模式
禁用git merge 其他分支名
Fast forward
模式(--no-ff
) 推薦
用git merge --no-ff -m "提交備注" 其他分支名
git log --graph --pretty=oneline --abbrev-commit
命令可以看到分支合并圖 - 刪除分支
強(qiáng)行刪除分支git branch -d 分支名
git branch -D 分支名
- 保存工作空間
git stash
- 查看保存的工作空間
git stash list
- 從保存的工作空間恢復(fù)
若存在多個(gè)保存的工作空間(n為序號(hào)0開(kāi)始)git stash apply
git stash apply stash@{n}
- 刪除保存的工作空間
若存在多個(gè)保存的工作空間(n為序號(hào)0開(kāi)始)git stash drop
git stash drop stash@{n}
- 從保存的工作空間恢復(fù)并刪除保存的空間
若存在多個(gè)保存的工作空間(n為序號(hào)0開(kāi)始)git stash pop
git stash pop stash@{n}
- 將其他分支上的提交應(yīng)用到當(dāng)前分支
git cherry-pick commit的編號(hào)
- 抓取代碼
git pull
- 將本地分支與遠(yuǎn)程分支關(guān)聯(lián)
git branch --set-upstream-to 分支名 origin/分支名
- 把本地未push的分叉提交歷史整理成直線;
git rebase
rebase的目的是使得我們?cè)诓榭礆v史提交的變化時(shí)更容易,因?yàn)榉植娴奶峤恍枰綄?duì)比寡夹。
- 打標(biāo)簽
git tag v1.0 commit的id(不加則為之后的commit添加標(biāo)簽)
git tag -a v1.0 -m "提交備注" commit的id(不加則為之后的commit添加標(biāo)簽)
- 查看所有標(biāo)簽
git tag
- 查看標(biāo)簽信息
git show v1.0
- 刪除本地標(biāo)簽
git tag -d v0.1
- 刪除遠(yuǎn)程標(biāo)簽
git push origin :refs/tags/v1.0
- 推送某個(gè)標(biāo)簽到遠(yuǎn)程
git push origin v1.0
- 推送全部尚未推送的標(biāo)簽
git push origin --tags
- 同一套代碼關(guān)聯(lián)多個(gè)遠(yuǎn)程庫(kù)(同時(shí)關(guān)聯(lián)github和gitee為例)
關(guān)聯(lián)GitHub的遠(yuǎn)程庫(kù)
關(guān)聯(lián)Gitee的遠(yuǎn)程庫(kù)git remote add github git@github.com:username/xxxx.git
推送Githubgit remote add gitee git@gitee.com:username/xxxx.git
推送Giteegit push github master
git push gitee master
- 查看
.gitignore
文件中哪條規(guī)則寫(xiě)錯(cuò)了git check-ignore -v 文件名
- 設(shè)置命令別名
git status
=>git st
git config --global alias.st status
git reset HEAD file
=>git unstage
git config --global alias.unstage 'reset HEAD'
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
=>git lg
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
暫時(shí)只能整理這么多啦
本文使用OpenWrite進(jìn)行編寫(xiě)