基本操作
git init
創(chuàng)建.git目錄初始化git
git add .
添加當(dāng)前目錄到git中
git commit -m "first commit"
放入暫存區(qū)中
git clone https://github.com/mzkmzk/Read.git [重命名本地目錄]
克隆現(xiàn)有倉庫
git remote add origin https://github.com/1135/note/git/git.md
添加遠(yuǎn)程倉庫
添加后遠(yuǎn)程倉庫的名字叫“origin”(可以其他)
git push -u origin master
遠(yuǎn)程倉庫為空時:第一次push時加上-u參數(shù),git會把本地master分支推送到遠(yuǎn)程,# 還會把本地的master分支與遠(yuǎn)程的master分支關(guān)聯(lián)起來,以簡化下一次推送
git push #當(dāng)前分支master推送到遠(yuǎn)程
git diff
git diff : 查看尚未暫存的文件更新了哪些部分,比較工作目錄和暫存區(qū)的差異
git diff --staged 查看已暫存的下次將要提交的.
git commit
git commit
進(jìn)入編譯器,里面包含更改信息
git commit -m "內(nèi)容"
直接提交內(nèi)容,不進(jìn)入編譯器
git commit -a
提交所有已跟蹤的文件,包括未add到緩存區(qū)的.(但不會提交未跟蹤的)
git rm
要從Git移除文件,必須git rm 掉已跟蹤文件,并且commit到緩存區(qū).并且在工作目錄中刪除指定文件.
會有幾種情況
刪除之前修改過并且放到暫存區(qū)的:必須git rm -f 文件強制刪除.(防止誤刪未add到緩存區(qū)的文件)
當(dāng)你想緩存區(qū)和倉庫都刪除了某目錄,但工作區(qū)保留 :git rm --cached 目錄/
git rm 后面可跟glob
刪除log下后綴為log的文件
git rm log/*.log
為何要加,因為不需要shell幫忙,git自行解析
git rm *~ ,所以~結(jié)尾的文件.
git mv
重命名文件
如本語句
git mv README.md README
git會自動執(zhí)行
mv README.md README
git rm RADME.md
git add README
git diff
比較文件差異
git diff <file> #比較工作區(qū)與暫存區(qū)文件的差異
git diff --cached # 比較暫存區(qū)和版本庫差異
git diff <$id1> <$id2> # 比較兩次提交之間的差異
git diff <branch1>..<branch2> # 在兩個分支之間比較
分支
git branch -r #查看遠(yuǎn)程分支
git branch new_branch_name #新建一個分支
git branch --merged #查看已經(jīng)被合并到當(dāng)前分支的分支
git branch --no-merged #查看未被合并到當(dāng)前分支的分支
git checkout branch_name #切換分支
git checkout -b branch_name #創(chuàng)建分支并切換
git branch -d branch_name #刪除分支
git branch -D branch_name #強制刪除分支
git push origin :branch-name #刪除遠(yuǎn)程分支(先在本地刪除該分支),原理是把一個空分支push到server上,相當(dāng)于刪除該分支。
從遠(yuǎn)程clone一個項目,雖然遠(yuǎn)程上該項目是有分支的,但clone下來后發(fā)現(xiàn)只有master分支,解決:
git checkout -b not_master_branch origin/not_master_branch #本地創(chuàng)建一個分支,指向?qū)?yīng)的遠(yuǎn)程分支
git pull origin not_master_branch #將遠(yuǎn)程的not_master_branch分支pull下來
git push origin not_master_branch #將修改后的not_master_branch分支push到遠(yuǎn)程的not_master_branch