git 需要了解的幾個命令

2021-09-12 12:22:03 字數 3215 閱讀 2371

git init
git add .
git commit -m  "this is 注釋"
ssh-keygen -t rsa -c "[email protected]"
git remote add origin
git checkout -b develop
git push origin develop
git branch -a
git push origin --delete 分支名
git branch -d 分支名
git pull origin master

dirgit rm -r --cached 「檔名」

git commit -m "備註"

git push origin master

git remote add origin [email protected]:***x/nothing2.git
git checkout -b develop
git fetch origin develop

git reset --hard origin/develop (放棄本地修改,遠端分支強制覆蓋)

git pull
git fetch --all  

git reset --hard origin/master

git pull

git remote add upstream git@***
git fetch upstream
upstream 是鏈結名,和上面一致

git merge upstream/master 

// 或者

git rebase upstream/master (推薦,會保證歷史結構清晰)

將master 分支上的內容更新,如果是其他分支對應為分支名 例如:git merge upstream/develop

git update-index --assume-unchanged src/lib/filename 忽略檔案(目錄)

git update-index --no-assume-unchanged src/lib/filename 取消忽略檔案(目錄)

git 打補丁常見問題

git format-patch --root #生成從根到r1提交的所有patch

(或者) git am ***.patch

git add .

git am --resolved

之後依次遇到衝突,匯出衝突,解決衝突迴圈操作。

git am --abort
注意: 這裡的patch打包是基於跟目錄,如果2個倉庫目錄結構不同會導致錯亂。

如果patch 無法滿足管理2個倉庫的需求,可以考慮 submodule

相關部落格:

git submodule 入門

git submodule 子模組的新增、刪除

子模組的新增

git submodule add (新增某個子模組的分支)   git submodule add -b 《分支名》
其中有 module 目錄, 不過是空的, 你必須執行兩個命令:

git submodule init 用來初始化本地配置檔案;

git submodule update 則從該專案中抓取所有資料並檢出父專案中列出的合適的提交。

補充: 如果在clone project 專案的同時加上--recursive引數, 它就會自動初始化並更新倉庫中的每乙個子模組

git reset --soft head^撤回commit操作,您寫的**仍然保留

--mixed

意思是:不刪除工作空間改動**,撤銷commit,並且撤銷git add . 操作

這個為預設引數,git reset --mixed head^ 和 git reset head^ 效果是一樣的。

--soft

不刪除工作空間改動**,撤銷commit,不撤銷git add .

--hard

刪除工作空間改動**,撤銷commit,撤銷git add .

注意完成這個操作後,就恢復到了上一次的commit狀態。

如果commit注釋寫錯了,只是想改一下注釋,只需要:

git commit --amend

此時會進入預設vim編輯器,修改注釋完畢後儲存就好了。

vim .git/config
以下新增內容

[alias]

br = branch

ch = checkout

ps = push

pl = pull

cm = commit -m

s = status

logs = log --pretty=oneline

使用

git br

git ch

git logs

當使用git clone 產生這個問題的時候,在第一次轉殖的時候,把轉殖深度設定為1,然後再fetch

git clone   --depth  1

cd example

git fetch --unshallow

直接從某個分支下面轉殖專案

git clone -b develop

改用ssh鏈結轉殖

程式設計師需要了解的幾個開源協議

今天工作的任務要寫一些跟開源協議相關的約定說明,所以在網上搜尋了一些資料以供參考,下面列出了幾個比較常見的開源協議,如果想要了解其他的協議和詳細了解這些協議,我個人推薦這個 http www.opensource.org licenses mozilla public license bsd開源協議...

ArrayList需要了解的事情

arraylist 是日常開發經常使用到的容器類。它能夠方便的進行資料的查詢 替換。但是因為其低層實現的原因在資料容量 效能 執行緒安全上都存在問題,主要涉及到下面的內容 1 預設初始容量為 0,如果未指定容量則首次初始的容量為 10 同時其也是有容量限制的 2 新增元素會涉及到陣列擴容和陣列元素拷...

Fiddler 你需要了解的

官網 平台 支援所有作業系統和瀏覽器,對window支援比較好 主要功能 工作原理 系統 不過如果fiddler非正常退出,這時候因為fiddler沒有自動登出,會造成網 頁無法訪問。解決的辦法是重新啟動下fiddler.同類的其它工具有 httpwatch,firebug,wireshark 啟動...