Git 日常工作中使用的命令記錄

2022-01-11 06:02:12 字數 3973 閱讀 4291

這篇文章主要是介紹我在使用git中的有一些忘記了,但是很重要的命令。

git config alias.change-commits '!'"f() ; f "
git change-commits git_author_name "old name" "new name"
git change-commits git_author_email "[email protected]" "[email protected]" head~10..head
本地分支的重新命名

git branch -m oldbranchname newbranchname

如果想重新命名當前分支

git branch -m newbranchname

20190311update

問題是:之前addcommit時發現把 bin 和 obj 檔案包含進去了,後來再加了 .gitignore 發現沒用了。解決問題如下

git rm -r --cached . 

git add .

git commit -am "remove ignored files"

20171127更新

檢視各個分支所指的當前物件

git log --oneline --decorate
git log --oneline --decorate --graph --all //輸出你的提交歷史,各個分支的指向,以及專案分支分叉的情況
git merge [branchname] 把 branchname 合併到當前分支

任何因包含合併衝突而有待解決的檔案,都會以未合併狀態標識出來。 git 會在有衝突的檔案中加入標準的衝突解決標記,這樣你可以開啟這些包含衝突的檔案然後手動解決衝突。 出現衝突的檔案會包含一些特殊區段,看起來像下面這個樣子:

<<<<<<< head:index.html contact : [email protected]

*****== please contact us at [email protected]

>>>>>>> iss53:index.html

這表示 head 所指示的版本(也就是你的 master 分支所在的位置,因為你在執行 merge 命令的時候已經檢出到了這個分支)在這個區段的上半部分( *****== 的上半部分),而 所要合併分支所指示的版本在 *****== 的下半部分。 為了解決衝突,你必須選擇使用由 *****== 分割的兩部分中的乙個,或者你也可以自行合併這些內容。 例如,你可以通過把這段內容換成下面的樣子來解決衝突:

git branch -v 

git branch --merged / --no-merged 檢視已經合併或者未合併的分支

git branch -d / -d(強制刪除)

遠端倉庫名字 origin 與分支名字 master 一樣,在 git 中並沒有任何特別的含義一樣。 同時 master 是當你執行 git init 時預設的起始分支名字,原因僅僅是它的廣泛使用, origin 是當你執行 git clone 時預設的遠端倉庫名字。 如果你執行 git clone -o booyah ,那麼你預設的遠端分支名字將會是 booyah/master 。

2017 11 23 更新

git log

git log -p //顯示每次提交的內容差異

git log --stat //顯示每次提交的簡略的統計資訊

git log --pretty=format:"%h - %an, %ar : %s"

限制輸出長度

git log --sine=2.weeks

git log -顯示 前 n 條提交

git log --author 指定作者的提交

git log -sfunctionname 可以列出那些新增或移除了某些字串的提交

撤銷剛剛的乙個提交

git commit --amend //由於commit 資訊寫錯,好像經常用
當你使用 git add * 時,發現新增了不應該暫存的檔案,可以用下面的來取消暫存

git reset head git checkout -- //取消對乙個未加入暫存區檔案的修改
新增乙個遠端倉庫

git remote add git remote add pb

從遠端倉庫抓取與拉取

git fetch [remote-name] //git fetch origin

git push [remote-name] [branch-name]

檢視遠端倉庫

git remote show [remote-name]

遠端倉庫的移除與重新命名

git remote rename git remote rm

git tag 列出標籤
git 使用兩種主要型別的標籤: 輕量標籤(lightweight) 與 附註標籤(annotated)。

乙個輕量標籤很像乙個不會改變的分支-它只是乙個特定提交的引用。

附註標籤是儲存在git資料庫中的乙個完整物件。它們是可以被校驗的;其中包含打標籤者的名字、電子郵件位址、日期時間;還有乙個標籤資訊;並且可以使用gnu privacy guard (gpg) 簽名與驗證。

git tag -a v1.4 -m 'my version 1.4'

git show 可以看到標籤資訊對應的提交資訊

git tag v1.4-lw
git tag -a v1.2 9fsdfdasfa  某個提交的校驗和的值
git push origin v1.2 推送指定標籤

git push origin --tags 一次性推送把所有不在遠端倉庫伺服器上的標籤全部推送過去

在特定標籤上建立乙個新分支

git checkout -b [branchname] [tagname]

git checkout -b version2 v3.3.0

問題描述: 比如我覺得當前分支可能不適合線上的,那麼我需要來乙個更加安全的分支?

實現:

git checkout -b new-branch commitid
對 指定的commitid建立新分支。

git clone  myname
以前一直不知道,當暫存之後使用 git diff 就無效了,今天發現竟然還有這個

(在未 commit 的狀態下!)

git diff --cached

git diff --staged

首先先使用rm filename然後再使用git rm filename進行記錄。

另外一種情況是,我們想把檔案從 git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中。 換句話說,你想讓檔案保留在磁碟,但是並不想讓 git 繼續跟蹤。 當你忘記新增 .gitignore 檔案,不小心把乙個很大的日誌檔案或一堆 .a 這樣的編譯生成檔案新增到暫存區時,這一做法尤其有用。 為達到這一目的,使用 --cached 選項

git rm --cached deletename

git工作中使用命令

1.檢視本次對檔案進行了哪些修改 git show 1 首先獲取commitid,可以通過git log 2 git show 檢視修改了哪些檔案 3 git show commitid 檢視檔案中修改的內容。刪除遠端分支 git push origin delete anjunshuang 建立乙...

日常工作中的shell指令碼

由於nginx開啟了ssl證書,從http公升級到https,所以要把 的html檔案中的http替換成https,寫了個小指令碼,如下 bin bash shell宣告 dir num find test name html 獲取test目錄下所有的html檔案 time date 定義時間變數 ...

工作中使用過的git 命令總結

檢視提交歷史記錄和某個記錄的修改詳情 1 git log 2 git show 1f2e6d6ae0bcbde88fc4b8409e5f4ceb1882f4de 檢視某個檔案的提交歷史記錄和某個記錄的修改詳情 1 git log pretty oneline git log pretty oneli...