安裝及配置:
配置用戶名:git config --global user.name
"你的名字"
配置e-mail:git config --global user.email
"你的郵箱"
遠(yuǎn)程分支:
查看遠(yuǎn)程分支:git remote -v
查看遠(yuǎn)程所有的分支:git branch -a
(紅色代表當(dāng)前所在的分支)
拉取遠(yuǎn)程分支:git pull origin develop
(develop是分支)
合并遠(yuǎn)程分支:git pull --rebase origin master
(--rebase選項(xiàng)告訴Git提交移到同步了中央倉庫修改后的master分支的頂部镶苞,這樣不會生成一個合并提交)
推送遠(yuǎn)程分支:git push -u origin develop
(-u 表示設(shè)置本地跟蹤遠(yuǎn)程對應(yīng)的分支,下次直接使用 git push 就可以了)
從遠(yuǎn)程倉庫直接創(chuàng)建一個分支:git checkout -b develop master
創(chuàng)建一個新的遠(yuǎn)程分支雳灵,-b選項(xiàng)表示如果分支還不存在則新建分支
刷新遠(yuǎn)程分支:git fetch origin
(有時候 git branch -r 無法看到所有的遠(yuǎn)程分支,是因?yàn)闆]有刷新)
拉取遠(yuǎn)程分支:git checkout -b <name> origin/<name>
與添加有關(guān)的:
將當(dāng)前目錄變?yōu)閭}庫:git init
將文件添加到暫存區(qū):git add
文件名 [可選:另一個文件名]
將暫存區(qū)提交到倉庫:git commit –m
"描述"
將工作區(qū)提交到倉庫:git commit –am
"描述"
創(chuàng)建忽略文件
.gitignore 添加要忽略的文件名
與查詢有關(guān)的:
查詢倉庫狀態(tài):git status
比較文件差異(工作區(qū)和緩存區(qū)對比):git diff
文件名
比較文件差異(緩存區(qū)和commit版本對比):git diff --cached
文件名
查看倉庫歷史記錄(詳細(xì)):git log
查看倉庫歷史記錄(單行):git log --pretty=oneline
或 git log --oneline
查看所有版本的commit ID:git reflog
與撤銷有關(guān)的:
刪除暫存區(qū):git rm --cached 文件名
(--cached 表示只刪除緩存區(qū)中的內(nèi)容)
撤銷工作區(qū)的修改:git checkout -- 文件名
撤銷暫存區(qū)的修改:git reset HEAD 文件名
回退到歷史版本:git reset --hard 該版本ID
回退到上個版本:git reset --hard HEAD^
上上版本是HEAD^^,也可用HEAD~2表示媚值,以此類推
回退單個文件到某一個commit: git reset "commit-id" "filename"
git 合并指定分支上的 commit:
合并單個 commit (將 commit 62ecb3 合并到 master 分支上)
git checkout master
git cherry-pick 62ecb3
合并多個連續(xù) commit (將 commit 62ecb3 ~ 76cada 合并到master上)
git checkout -b newbranch 62ecb3
git rebase —onto master 76cada^
76cada^ 表示從 76cada 的 commit 開始合并(作為新的commit)宴树。這樣就完成了 76cada 到 62ecb3
合并到 master。
與標(biāo)簽有關(guān)的:
為當(dāng)前版本打標(biāo)簽:git tag
標(biāo)簽名
為歷史版本打標(biāo)簽:git tag
標(biāo)簽名 該版本ID
指定標(biāo)簽說明:git tag –a 標(biāo)簽名 –m "標(biāo)簽說明" [可選:版本ID]
查看所有標(biāo)簽:git tag
查看某一標(biāo)簽:git show 標(biāo)簽名
刪除某一標(biāo)簽:git tag –d 標(biāo)簽名
修改最后一次commit提交的信息:git commit --amend
分支管理:
創(chuàng)建分支:git branch dev
切換分支:git checkout dev
創(chuàng)建并切換分支:git checkout -b dev
刪除分支:git branch -d dev
在分支上提交版本:git commit -a -m 'dev1'
合并分支:git merge dev
分支合并后顯示log:git log --oneline --graph --decorate
準(zhǔn)備切換到其他分支额各,保存當(dāng)前分支內(nèi)容:git stash
再次切換回來后應(yīng)用保留的內(nèi)容:git stash apply
丟掉保存的內(nèi)容:git stash drop
使用并丟掉保存的內(nèi)容:git stash pop
將 A 分支上的一次 commit 合并到 B 分支上 git cherry-pick ( A 分支的一次 commit )
Rebase 的用法
合并最新的四個commit git rebase -i HEAD~4
(HEAD~4 就是合并后生成新的跟在這個后面)
減少分支的merge記錄 (當(dāng)前分支不是基于最新的master做的修改) git rebase master
修改最后的commit git commit --amend
與GitHub有關(guān)的:
先有本地庫国觉,后有遠(yuǎn)程庫,將本地庫push到遠(yuǎn)程庫
關(guān)聯(lián)本地倉庫和GitHub庫:git remote add origin 網(wǎng)站上的倉庫地址
第一次將本地倉庫推送到GitHub上:git push –u origin master
先有遠(yuǎn)程庫虾啦,后有本地庫麻诀,從遠(yuǎn)程庫clone到本地庫
從遠(yuǎn)程庫克隆到本地:git clone 網(wǎng)站上的倉庫地址
SSH Key
生成SSH Key:ssh-keygen –t rsa –C "你的郵箱@xx.com"
生成Key時彈出選項(xiàng),回車選擇默認(rèn)即可傲醉。
Key保存位置:/root/.ssh
登陸GitHub蝇闭,創(chuàng)建new SSH key,其內(nèi)容為/root/.ssh/id_rsa.pub中文本
已經(jīng)有了本地庫和遠(yuǎn)程庫硬毕,二者實(shí)現(xiàn)同步
本地庫的改動提交到遠(yuǎn)程庫:git push origin master
更新本地庫至遠(yuǎn)程庫的最新改動:git pull