Git 4個區(qū)域
Workspace:工作區(qū)
Index / Stage暫存區(qū)
Repository:倉庫區(qū)(或本地倉庫)
Remote:遠程倉庫
基礎(chǔ)命令
關(guān)聯(lián)遠程倉庫 添加項目
$ git remote add origin git@<url>
添加空目錄
mkdir *** //創(chuàng)立文件夾
cd *** //定位要該文件夾
pwd //顯示路徑
添加任意后綴的文件
type nul>文件名.后綴名
寫入內(nèi)容到文件
echo '***' > 文件名.后綴名
初始化
git init
提交
git commit -m 'remark' //提交更改丹鸿,實際上就是把暫存區(qū)的所有內(nèi)容提交到當前分支
添加
git add //把文件修改 添加到暫存區(qū)
查看修改倉庫的當前狀態(tài)
git status
比較工作區(qū)和暫存區(qū)的文件的差異
git diff ***
比較暫存區(qū)和本地倉庫的文件的差異
git diff --cached [<path>...]
比較工作區(qū)和本地倉庫的文件的差異
git diff HEAD [<path>...]//如果HEAD指向的是master分支,那么HEAD還可以換成master
比較工作區(qū)與指定commit-id的差異
git diff commit-id [<path>...]
比較暫存區(qū)與指定commit-id的差異
git diff --cached [<commit-id>] [<path>...]
比較兩個commit-id之間的差異
git diff [<commit-id>] [<commit-id>]
版本回退
git reset --hard DEAD^ 回退上個版本
git reset --hard **** 回退某一個版本號
查看內(nèi)容
cat ***
查看git 歷史
git log
git log --pretty=oneline 簡化信息
git log --graph 命令可以看到分支合并圖
查看你每一次的命令
git reflog
把文件名.后綴名 文件在工作區(qū)的修改全部撤銷
如果文件修改還沒有被放到暫存區(qū) 那么撤銷修改就回到和版本庫一模一樣的狀態(tài)
如果文件修改已經(jīng)添加到暫存區(qū)后,又作了修改泼橘,現(xiàn)在豌鹤,撤銷修改就回到添加暫存區(qū)后的狀態(tài)沪袭。
總之艇抠,就是讓這個文件回到最近一次git commit 或git add時的狀態(tài)默怨。
-- 很重要 沒有-- 就變成了切換到另一個分支的命令仆嗦。
git checkout -- 文件名.后綴名
如果要撤銷暫存區(qū)的修改使用
reset既可以回退版本,也可以把暫存區(qū)的修改回退到工作區(qū) 當我們使用HEAD時先壕,表示最新的版本瘩扼。
git reset HEAD 文件名.后綴名
創(chuàng)建SSH Key
$ ssh-keygen -t rsa -C "郵箱地址"
.gitignore 屏蔽要提交到遠程倉庫的文件或者文件夾 忽略規(guī)則
/node_modules
查看遠程得分支名
git branch -r
把本地倉庫推送到遠程庫
git push -u(這個參數(shù) Git不但會把本地的master分支內(nèi)容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關(guān)聯(lián)起來垃僚,在以后的推送或者拉取時就可以簡化命令)
git push origin master
更新遠程倉庫的代碼
git fetch <name> <branch>
克隆遠程倉庫的代碼
git clone <name> <branch>
顯示制定工作目錄下的內(nèi)容(列出目前工作目錄所含的文件和子目錄)
ls
查看分支
git branch
創(chuàng)建分支
git branch <name>
切換分支
git checkout <name>
創(chuàng)建+切換分支
git checkout -b <name> -b branch 分支縮寫
相當于2條命令
git branch dev
git checkout dev
合并某分支到當前分支 merge方式
git merge <name>
合并某分支到當前分支 rebase方式
git rebase <name>
該方式的好處是在查詢git歷史記錄時沒有merge那么亂七八糟的支線集绰,說白了就是合并為一條線
使用的時候需要注意沖突的合并
git rebase --continue
另外在解決沖突之后使用 git push -f來覆蓋之前的歷史記錄
剛開始使用會不習慣,后面其實也沒有什么
刪除分支
git branch -d <name>
刪除分支 -d 相當于 delete的縮寫
儲藏當前工作現(xiàn)場的代碼 以便于后面恢復繼續(xù)工作
git stash
查看儲存歷史
git stash list
查看遠程庫的信息
git remote
-v
創(chuàng)建遠程origin的dev分支到本地
$ git checkout -b dev origin/dev
遠程倉庫與本地分支建立鏈接
$ git branch --set-upstream-to=origin/dev dev
標簽
$ git tag <tagname> 用于新建一個標簽 默認為HEAD 也可以制定一個commit id
git tag <tagname> -m 'blablablabla...'可以制定標簽信息
git tag 可以查看所有標簽
git tag -d <tagname> 刪除標簽