配置
#查看配置
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