Git 常用命令及理解 .gitignore配置規則

目錄

 

基本概念:

初始化倉庫:

提交代碼:

查看創庫變化:

版本回退和前進:

丟掉修改:

文件刪除:

遠程倉庫:

創建合併分支:

解決衝突:

Bug分支(工作現場):

多人協作:

多人協作處理衝突思路:

標籤管理:

.gitignore配置規則


基本概念:

add之前是工作區,add之後是暫存區,commit之後是本地倉庫

pull拉取遠程倉庫,push 推送到遠程倉庫

初始化倉庫:

$git init    初始化一個目錄,並創建一個.git目錄

提交代碼:

$git add <filename>,把修改文件添加到暫存區

$git commit   -m '提交日誌信息'   把暫存區的內容提交到本地倉庫

$git commit -a -m '信息'  上面兩步一起執行, 只對已在分支上的文件有效

查看創庫變化:

$git status  查看倉庫狀態

$git diff <filename> 查看未提交修改,

$git diff HEAD --<filename> 查看工作區與版本庫的所有修改

$git log 查看提交日誌  $ git log --pretty=oneline 單行顯示  

版本回退和前進:

$git reset --hard <版本號>  ,如果是HEAD^ 回退一步,也可以回退多步HEAD~100

$git reflog 查看歷史操作,可以得到被回退得版本號  是git log辦不到得

丟掉修改:

$git checkout -- <filename> 可一丟掉工作區得修改 。撤銷該文件得最後一次工作區操作

如果要丟帶暫存區 必須先 git reset HEAD <filrname> 回退add操作,再執行checkout操作

如果已經commit,那就只有進行版本回退了

文件刪除:

方式一:手動刪除然後 git add 就行了 

方式二:直接$git rm <filrname> 就行

兩種方式都需要commit操作,才能提交到本地倉庫

遠程倉庫:

$ssh-keygen -t rsa -C "email" 創建SHH Key 密鑰, 在用戶目錄會生成.shh目錄,需要使用是id_rsa.pub文件的公鑰

$git clone <倉庫地址> 克隆遠程倉庫到當前目錄

$git remote add origin <倉庫地址> 本地倉庫與遠程倉庫關聯 

$git push -u origin master 推送本地倉庫到遠程,第一次要使用 -u

地址使用區別,git協議比https協議快

創建合併分支:

$git pull origin dev 拉去遠程dev分支並切換過去

$git checkout -b branch-name origin/branch-name

$git branch 參看分支 當前分支會帶*

$git branch dev 創建dev分支

$git push origin dev 第一次提交本地創建的分支

$git checkout -b dev 創建dev分支並切換到dev

$git checkout master 切換到master分支

$git switch -c dev 創建dev分支並切換到dev  switch 2.23版之後纔有 使用git --version 查看版本

$git switch master 切換到master分支

$git merge dev 把dev分支合併到當前分支

$git branch -d dev 刪除本地dev分支

$git push origin --delete test 刪除遠程test分支

$git rebase 把本地未鋪設的分叉提交歷史整理成直線

解決衝突:

解決思路,修改衝突文件保留自己需要的

$git add 提交修改

$git commit -m '提交信息'

Bug分支(工作現場):

$git stash 保存工作區並隱藏,爲了不營銷切換分支

$git stash list 查看工作現場

$git stash apply stash@{0} 恢復工作現場

$git stash drop 刪除stash

$git stash pop 恢復工作現場並 刪除stash

多人協作:

$git remote -v 查看遠程庫信息 網址

$git push origin <name> 推送指定分支到遠程

多人協作處理衝突思路:

1.git pull 拉下代碼 正常處理衝突

2.任何再push  (如果命令失敗根據提示執行命令)

標籤管理:

$git tag <name> [commitid] 創建新標籤  標籤是打在commit節點上 和分支無關; 用-a指定標籤名,-m指定說明文字

$git tag -a v0.1 -m "version 0.1 released" 1094adb

$git tag 查看tag

$git show <tagname> 查看tag描述

$git tag -d <name> 刪除tag

$git push origin <tagname>  推送tag到遠程

$git push origin --tags 推送全部

$git push origin :refs/tags/tagname 刪除遠程tag

.gitignore配置規則

在倉庫根目錄下新建該文件

配置語法(pattern規則)

  • 以 / 開頭表示根目錄,防止遞歸
  • 以 / 結尾表示指定目錄
  • 以 ! 開頭表示不過濾(跟蹤)此項配置匹配到的文件或目錄
  • 以 # 開頭表示註釋,如需轉義在前面加斜槓,/#

 

  • 配置規則可以使用標準的glob模式匹配(glob模式是指shell所使用的簡化了的正則表達式)
  • * 通配符,多字符通配
  • **表示匹配任意中間目錄如,a/**/z 表示可以匹配a/z、a/s/z或 a/a/s/z 等
  • ? 通配符,單字符通配
  • [] 可以匹配任何一個在方括號中的字符, 如*.[ac] 表示匹配任何以 .a 或者 .c 結尾的文件,如果[]中有短劃線 - 分割兩個字符,則表示所有兩個字符範圍內的都可以匹配如 [0-9]
     

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章