Git常識命令

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這個分支刪除

問題:同行修改合併時會衝突,需手動更改後,再提交歷史區(不一樣行不衝突,需注意順序)

避免:

  1. 首先要創建分支,分支修改,提交到歷史區
  2. 而後在回到主支上,修改主支,提交到歷史區
  3. 最後再合併主支和分支

刪除分支

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裏面就是執行過的命令

LINUS命令

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

下次再改代碼的時候切換到本身的分支上進行修改

相關文章
相關標籤/搜索