1.git忽略規則,.gitignore不生效的解決辦法
在專案開發過程中,突然心血來潮想把某些目錄或檔案加入忽略規則,在gitignore檔案中定義後發現並未生效,原因是.gitignore只能忽略那些原來沒有被track的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的。那麼解決方法就是先把本地快取刪除(改變成未track狀態),然後再提交:
git rm -r --cached .
git add .
git commit -m "update .gitignore"
2.刪除遠端分支,並且及時清理本地分支
刪除遠端分支的命令: git push origin :feature_***, 就是在push的分支名字前面加 冒號。
而刪除完遠端分支之後,git branch -a還能看到遠端有該分支, 這裡可以輸入 git fetch 及時更新檢視的遠端倉庫的資訊。
本地分支怎麼做到及時清理?
辦法有兩個,我習慣的辦法是,git branch -d ***x(分支名字), 另外一種辦法是, git remote prune origin , 這種方式我沒仔細研究過。
?3. 回滾**
將**提交到了遠端的倉庫,但是突然想把這幾次的提交回滾到某個版本。
git reset --hard 某次提交的id,這個時候本地**是會回滾到這個提交的階段,然後
git push origin 《分支名字》 -f,注意這裡的-f,這個f引數可以讓你強制提交遠端**,忽略落後於遠端分支幾次commit的情況
使用 git push origin 《分支名字》 -f ,這個有可能會返回permission 拒絕的錯誤, 原因是多數master分支都是被protected的狀態,需要到**託管平台,修改一下。
4. 刪除本地除了master分支之外的其他分支
主要命令
git branch | grep -v "master" | xargs git branch -d
注意點 :
1.執行前需要切換到master分支執行
2.當前分支未做修改
5. 簡寫
git checkout -brach *** 比如說我們要新建乙個分支,並且跳到這個分支上就要使用這個命令。
我們可以簡寫成git ck -b ***
ck = checkout
br = branch
將這兩個命令配置在 ~/.gitconfig的 [alias]下即可。如下圖
6. 推送多個倉庫
場景是這樣的,我有乙個專案,想要推送到github的同時,也想將**推送到碼雲的git中。
方法有兩種:
第一種簡單粗暴,直接git remote add origin2 [email protected]:csucoderlee/my-awesome-project.git 直接新增另外乙個遠端源即可,這樣每次都需要git push origin master / git push origin2 master 向兩個**倉庫推送**,可能有的人覺得這樣每次都要向不同的倉庫去推送比較麻煩,可能倉庫位址多了的話,浪費時間,那就看第二種。
第二種git remote set-url --add origin ,配置多個遠端的位址,這樣每次只要提交一次 git push origin master 命令即可,就可以將**分別推送到不同的倉庫中,但是要注意的一點是,這樣的方式git pull origin master**,會有問題,只能從配置的第乙個位址中去拉去**,也就是fetch的url對應的就是第乙個配置的遠端倉庫,其他的都只是push倉庫。
可以使用git remote -v ,就看到第乙個位址後面(fetch)其他的都是(push)。
所以個人推薦第一種
7. 修改分支名字
先改本地分支的名字
git branch -m oldbranchname newbranchname
刪除遠端舊的分支
git push origin :oldbranchname
推送改過名字的本地分支到遠端
git push origin newbranchname
git 奇技淫巧
例如 1.0.0 git tag a 1.0.0 m 1.0.0 版本的備註資訊.複製 git push origin tags 複製 例如 1.0.0 git tag d 1.0.0 複製 刪除遠端標籤需要先刪除本地標籤,再執行下面的命令 git push origin refs tags 1.0...
Git的奇技淫巧
git常用命令集合,fork於tips專案 git是乙個 分布式版本管理工具 簡單的理解版本管理工具 大家在寫東西的時候都用過 回撤 這個功能,但是回撤只能回撤幾步,假如想要找回我三天之前的修改,光用 回撤 是找不回來的。而 版本管理工具 能記錄每次的修改,只要提交到版本倉庫,你就可以找到之前任何時...
c 的奇技淫巧
關於陣列 數論演算法技巧 stl其他 while scanf d d n,m eof 等價於 while scanf d d n,m 2 前者eof為檔案結束符,較保險 後者 後的數字為輸入的變數的個數 不能只寫while scanf d d n,m 這樣無法結束讀入 wwq大佬教的,希望我不要和他...