Git能夠界面化操做也能夠命令行操做node
① 工做區:不只包含你實際更改的文件還應當包括當前修改但未add存入暫存區的文件變化信息
② 暫存區:臨時存儲文件的變化信息,記錄file文件上的修改信息(細化時間節點)
③ 歷史區:記錄了各個版本,可查看代碼更新,也可回滾到其餘版本git
三個區域的提交過程:
工做區->暫存區(臨時儲存)->歷史區(生成版本),如須要回滾(直接從歷史區把須要的版本覆蓋工做區)
注意:有重大改變的版本或是在一次修改工做總體完成以後才使用commit。而在這之間須要保存的修改,通常都是存放在暫存區。
初始化git(不能嵌套使用git)ide
git init
以某個文件夾做爲git管理的目錄,初始化後會產生一個.git文件夾(勿刪)
添加暫存區idea
git add . 或者 -A 或者 文件名
添加到歷史區spa
git commit -m"initial"
-m
參數必須添加(第一次提交叫根提交)
注意:空文件夾默認不會提交,默認添加.gitignore文件(.idea和.DS_Store和node_modules)
添加暫存區添加歷史區命令行
git commit -a -m 'info'
此命令只能針對
提交過的文件
使用
查看提交進程信息code
git status
若是是 紅色:未添加到 暫存區中
若是是 綠色:添加到 暫存區中
若是是 沒有:添加到 歷史區中
查看提交記錄進程
git log
比較區的不一樣rem
git diff //不加參數即默認比較工做區與暫存區 git diff --cached //比較暫存區與最新本地版本庫(本地庫中最近一次commit的內容) git diff HEAD //比較工做區與最新本地版本庫(如HEAD指向的是分支,那HEAD還能夠換成主幹) git diff --cached 版本號 //比較暫存區與指定指定版本的差別 git diff 版本號 //比較工做區與指定版本的差別 git diff 版本號1 版本號2 //比較兩個版本號之間的差別
工做區的修改撤銷工作流
git checkout 文件名
工做區的修改撤銷到最近一次git add 或 git commit時的內容
注意:若是文件名是.
就是把暫存區所有覆蓋工做區
暫存區的修改撤銷
git reset HEAD 文件名
清空add命令向暫存區提交的關於文件的修改
注意:此命令僅改變暫存區,並不改變工做區
歷史區版本號
git reflog //全部的歷史區版本號
回滾歷史區
git reset --hard 版本號
查看分支
git branch
建立分支
git branch 分支名
切換分支
git checkout 分支名
注意:分支上添加文件須要提交後才能歸這個分支全部,不然你改的只是工做區內容,並且不提交是沒法切換支線的
建立並切換分支
git checkout -b 分支名
合併分支
git merge 分支名
① 默認會將分支上全部提交的內容所有合併(分支提交了兩次版本,會把分支的兩個版本都合併到主支),也能夠選擇
git cherry-pick 版本號
來合併某一個歷史② 合併以後,就是master和dev共有的,合併文件改變,master和dev都改變
③ 合併完成後,通常把dev這個分支刪除
問題:同行修改合併時會衝突,需手動更改後,再提交歷史區(不一樣行不衝突,需注意順序)
避免:
- 首先要創建分支,分支修改,提交到歷史區
- 而後在回到主支上,修改主支,提交到歷史區
- 最後再合併主支和分支
刪除分支
git branch -D 分支名
不能在當前分支上,而且字母D儘可能大寫
連接遠程倉庫
git remote add 別名 本身遠程倉庫連接
查看/刪除/更新遠程倉庫連接
git remote -v //查看 git remote rm 別名 //刪除 git remote update 新別名 //更新
克隆到本地
git clone 遠程地址 文件夾名
這裏文件夾名就是設置拉取到本地時候文件夾名
拉取最新代碼
git pull origin master
若是git pull -u origin master
第一次這麼寫,後面只須要git pull
便可
推送到遠程倉庫
git push origin master git push origin master --force //強制推送本地的代碼
線上和線下的修改可能衝突,能夠強制以本地爲準推送
推送以前可能須要拉取遠程的內容,合併後再次推送,如產生衝突,需解決衝突。
執行命令導出
history >1.txt //1.txt裏面就是執行過的命令
PWD打印當前目錄
print working directory
刪除文件夾
rm -rf .git rm -rf . //刪除整個文件,不要用
建立目錄
mkdir 目錄名
改變目錄
cd 目錄位置
顯示清單
ls
建立文件
touch 文件
編輯文件
vi 文件名 i //插入模式(編輯) esc+:wq //保存並退出 q! //強制退出
查看文件內容
cat 文件名
擴展:
q
用於命令行太小或是結束時
將倉庫中的代碼pull
下來
建立分支
git branch dev //本身的分支名稱
切換分支
git checkout dev
修改代碼後
git add . git commit -m''註釋' git push origin dev //本身的分支名稱,在githup上生成本身的子分支
切換到主分支
git checkout master
主分支上拉代碼
git pull origin master
合併分支
git merge dev git add . git commit -m '註釋' git push origin master
下次再改代碼的時候切換到本身的分支上進行修改