git常用命令

配置

#查看配置
git config -l

#全局配置用戶名和郵箱
git config --global user.name "your name"
git config --global user.email "your email"

#換行符問題:所有人的編輯器換行符設置成unix格式,然後把autocrlf設置成false
git config --global core.autocrlf false
#phpstorm換行符設置爲unix格式
File->Settings...->Editor->Code Style->Line separator設置

#拒絕提交包含混合換行符的文件
git config --global core.safecrlf true

#嚴格區分大小寫
git config core.ignorecase false

初始化倉庫、第一次提交

git init
git remote add origin 你的遠程倉庫地址
git pull origin master
git add .
git commit -m "第一次提交"
git push origin master

從遠程倉庫克隆項目到本地

git clone 倉庫地址 目標目錄

拉取

git pull origin master

推送

git push origin master

#強推(謹慎操作)
git push origin master -f

遠程倉庫管理

#查看遠程倉庫
git remote -v

#刪除
git remote remove origin

#添加
git remote add origin 遠程倉庫地址

只更新某個文件或文件夾

git fetch
git checkout -m 版本號  文件/文件夾

如:git fetch 的版本號爲 cd1768d...2408ca5
git checkout -m 2408ca5 1.php 2.php
git checkout -m 2408ca5 dir1

分支管理

#查看本地分支
git branch

#創建並切換到test分支
git checkout -b test

#切換到已有分支
git checkout test

#從遠程倉庫拉取一條本地不存在的分支,創建一個新的本地分支並與指定的遠程分支關聯起來
git fetch
git checkout -b 本地分支名 origin/遠程分支名

#在當前分支上合併另一個分支的代碼過來
git merge 另一個分支名

#合併成功後提交到當前分支
git push origin 當前分支名

#刪除分支
git branch -d test

分支策略

master分支 :穩定分支

dev分支 :開發分支,測試分支。

根據功能模塊開分支,每個功能可以根據每個人開發的內容開分支,一個功能點開發完後,合併分支並刪除無用分支。

bug修復:

確定要從哪個分支上修復,就從哪個分支上創建臨時分支:

#切換到要修復的分支
git checkout master

#從要修復的分支創建臨時分支
git checkout -b issue001

修復完畢後,提交代碼,回到dev上繼續幹活

#提交修復的代碼
git commit -a -m "***問題修復"

#切換回master合併代碼
git checkout master
git merge issue001

#合併完成後刪除臨時分支
git branch -d issue001

遠程分支查看

#查看所有本地分支和遠程分支
git branch -a 

#查看遠程分支
git branch -r


刪除遠程不存在的分支

使用命令 git remote show origin,可以查看remote地址,遠程分支,還有本地分支與之相對應關係等信息。

此時我們可以看到那些遠程倉庫已經不存在的分支,根據提示,使用 git remote prune origin 命令:

這樣就刪除了那些遠程倉庫不存在的分支。

從版本庫中移除某個目錄

git rm --cached -r .idea  #.idear是目錄名,-r表示遞歸

git stash

git stash:備份當前工作區的內容,從最近一次的提交中讀取相關內容,讓工作區保證和上次提交的內容一致,同時將當前工作區內容保存到git棧中。

git stash pop:從git棧中讀取最近一次保存的內容,恢復工作區的相關內容,由於可能存在多個stash的內容,所以用棧來管理,pop會從最近的一個stash中讀取內容並恢復。

git stash list:顯示所有git棧內的備份,可以利用這個列表來決定從哪個地方恢復。

git stash apply stash@{1}:將stash@{1}版本取出來並恢復。git stash pop會取最近一個並恢復,git stash apply stash版本號可以從指定地方恢復。

git stash clear:清空git棧

查看提交歷史

#列出所有更新,最近的在最上面
git log 

# -p展開每次提交的內容差異, -2顯示最近2個提交
git log -p -2

# --stat 顯示簡要的增改行數統計
git log --stat



.gitignore忽略規則的匹配語法(linux下以.開頭的文件都是隱藏文件)

  • 一行指定一個忽略規則
  • 空格不匹配任意文件,可作爲分隔符;#開頭的爲註釋;可使用反斜槓轉義。
  • 可使用標準的glob格式匹配,即shell所使用的簡化了的正則表達式
  • / 開頭表示目錄;以 / 結尾匹配文件夾及該文件夾下的內容,不匹配該文件。以 / 開頭的模式匹配項目根目錄,沒有 / 的爲.gitignore文件所在目錄。
  • * 匹配多個任意字符。 ** 匹配任意中間目錄,如 a/**/z 可以匹配a/b/z 、 a/b/c/z
  • ? 匹配一個任意字符。
  • [] 匹配任何一個在方括號中的字符。如: [abc] 要麼匹配一個a,要麼匹配一個b,要麼匹配一個c。 []- 分隔的兩個字符,匹配這兩個字符之間的任意字符,如: [0-9] 匹配所有0到9的數字, [a-z] 匹配所有小寫子母。
  • ! 取反。
  • 規則從上到下生效,如果前面有大範圍的規則,則後面的規則不生效。

密鑰管理

#生成新的密鑰
ssh-keygen -t rsa -C "your account"

#查看本機密鑰
cd ~/.ssh
ls

配置多個密鑰(配置不同服務器讀取路徑)

在~/.ssh 目錄下執行 vim config:
Host git.oschina.net
HostName git.oschina.net
User yourname
IdentityFile C:/Users/admin/.ssh/oschina_id_rsa

#站點域名 
Host gitee.com	
#站點域名
HostName gitee.com     
#當前電腦上的git用戶
User yourname           
#設置密鑰文件地址
IdentityFile C:/Users/admin/.ssh/oschina_id_rsa  

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