git diff 命令
git diff 文件:查看尚未緩存的改動
git diff --cached:查看已緩存的改動
git diff HEAD:查看已緩存的與未緩存的所有改動
git diff --stat:顯示摘要而非整個diff
但如何退出呢蚌铜?
按q即可
新建分支切換到指定分支
git checkout -b localname origin/branchname
常見的分支策略
常見的分支策略有三種:GitFlow, GitHubFlow, 以及GitLabFlow
Git Flow
GitFlow是三個分支中出現(xiàn)最早的
GitFlow通常包含五種類型的分支:Master分支畴博,Develop分支,F(xiàn)eature分支蒜田,Release分支烙心,HotFix分支膜廊。
?Master分支:主干分支,也是正式發(fā)布版本的分支淫茵,其包含可以部署到生產(chǎn)環(huán)境中的代碼爪瓜,通常情況下,只允許其他分支將代碼合入匙瘪,不允許向Master分支直接提交代碼(對應(yīng)生產(chǎn)環(huán)境)铆铆。
?Develop分支:開發(fā)分支,用來集成測試最新合入的開發(fā)成果丹喻,包含要發(fā)布到下一個Release的代碼(對應(yīng)開發(fā)環(huán)境)薄货。
?Feature分支:特性分支,通常從Develop分支拉出碍论,每個新特性的開發(fā)對應(yīng)一個特性分支菲驴,用于開發(fā)人員提交代碼并進行自測。自測完成后骑冗,會將Feature分支的代碼合并至Develop分支,進入下一個Release先煎。
?Hot Fix分支:熱修復(fù)分支贼涩,生產(chǎn)環(huán)境發(fā)現(xiàn)新Bug時創(chuàng)建的臨時分支,問題驗證通過后薯蝎,合并到Master和Develop分支遥倦。
通常開發(fā)過程中新特性的開發(fā)過程如下:
從Develop分支拉取一條Feature分支,開發(fā)團隊在Feature分支上進行新功能開發(fā)占锯;開發(fā)完成后袒哥,將Feature分支合并到Develop分支,并進行開發(fā)環(huán)境的驗證消略;開發(fā)環(huán)境驗證完成堡称,從Develop分支拉取一條release分支,到測試環(huán)境進行SIT/UAT測試艺演;測試無問題后却紧,可將Develop分支合入Master分支桐臊,待發(fā)版時,直接將Master分支代碼部署到生產(chǎn)環(huán)境晓殊。
GitFlow的優(yōu)點是每個分支都有明確的定義断凶,嚴格按照GitFlow管理項目代碼的話,很難出現(xiàn)代碼混亂巫俺;其缺點是:如果特性分支過多的話认烁,很容易造成代碼沖突,從而提高合并了的成本介汹;由于每次提交都涉及多個分支却嗡,所以GitFlow也不太適合提交頻率較高的項目。
GitHubFlow
GitHubFlow來源于GitHub團隊的工作實踐痴昧。當(dāng)代碼托管在GitHub上時稽穆,則需要使用GithubFlow。相比GitFlow而言赶撰,GitHubFlow沒有那么多分支舌镶。
GitHubFlow通常只有一個Master分支是固定的,而且GitHubFlow中的Master分支通常是受保護的豪娜,只有特定權(quán)限的人才可以向Master分支合入代碼餐胀。
在GitHubFlow中,新功能開發(fā)或修復(fù)Bug需要從Master分支拉取一個新分支瘤载,在這個新分支上進行代碼提交否灾;功能開發(fā)完成,開發(fā)者創(chuàng)建Pull Request(簡稱PR)鸣奔,通知源倉庫開發(fā)者進行代碼修改review墨技,確認無誤后,將由源倉庫開發(fā)人員合入Master分支挎狸。
很多人可能會問扣汪,提交代碼通常是commit或者push,拉取代碼才是pull锨匆,為什么GitHubFlow中提交代碼提出的是“Pull Request”崭别。因為在GitHubFlow中,PR是通知其他人員到你的代碼庫去拉取代碼至本地恐锣,然后由他們進行最終的提交茅主,所以用“pull”而非“push”。
GitHubFlow優(yōu)點是相對于GitFlow來說比較簡單土榴,其缺點是因為只有一條Master分支诀姚,萬一代碼合入后,由于某些因素Master分支不能立刻發(fā)布玷禽,就會導(dǎo)致最終發(fā)布的版本和計劃不同学搜。
GitLabFlow
GitLabFlow出現(xiàn)的最晚娃善,GitLabFlow是開源工具GitLab推薦的做法。
GitLabFlow支持GitFlow的分支策略瑞佩,也支持GitHubFlow的"Pull Request"(在GitLabFlow中被稱為"Merge Request")聚磺。
相比于GitHubFlow,GitLabFlow增加了對預(yù)生產(chǎn)環(huán)境和生產(chǎn)環(huán)境的管理炬丸,即Master分支對應(yīng)為開發(fā)環(huán)境的分支瘫寝,預(yù)生產(chǎn)和生產(chǎn)環(huán)境由其他分支(由Pre-Production, Production)進行管理。在這種情況下稠炬,Master分支是Pre-Production分支的上游焕阿,Pre-Production是Production分支的上游;GitLabFlow規(guī)定代碼必須從上游向下游發(fā)展首启,即新功能或修復(fù)Bug時暮屡,特性分支的代碼測試無誤后,必須先合入Master分支毅桃,然后才能由Master分支箱Pre-Production環(huán)境合入褒纲,最后由Pre-Production合入Production.
GitLabFlow中的Merge Request是將一個分支合入到另一個分支的請求,通過Merge Request可以對比合入分支和被合入分支的差異钥飞,也可以做代碼的Review莺掠。
git常用命令:
1. 切換分支: git checkout test
2. 更新版本: git pull
3. Merge代碼: git merge --no-ff --no-commit origin/devbranch
4. 提交代碼: git commit -a -m "comment"
5. Push代碼: git push
6. 將以下文件下載后,放到Y(jié)umServer進行管理
查詢用戶所屬組的命令
a=$(cat /etc/passwd|grep combatusr|cut -d ":" -f4)
cat /etc/group| grep $a
windows安裝各種代碼包
set http_proxy=http://10.142.4.40:8000
創(chuàng)建新用戶:
sudo useradd call
設(shè)置密碼
sudo passwd call
將用戶添加到組
sudo usermod -a -G call dmanager
更改文件權(quán)限
sudo chmod -R 770 call
生成SSH-Key的方法
?1. 啟動gitBash
2. 進入自己的個人的.ssh目錄(例:/c/Users/amy/.ssh)
3. 執(zhí)行ssh-keygen -t rsa
4. 連續(xù)輸入3次回車读宙。(不用輸入密碼)
mkdir ~/.ssh
git 撤銷merge的方法
1.?git reflog? ?查看log
2. git reset --hard 0f77c1e7? 回退到想要的版本號作為HEAD
3. git log --oneline? 查看下是否正確