用Git應付一些臨時工作

2022-02-26 21:02:22 字數 1430 閱讀 2939

我們有時候會接到一些臨時的工作,這些工作時常在計畫之外,比如現在乙個bug來了,你需要及時修復。但你從上次發布以後又改了許多,並且有的改動已經stage,有的已經commit,有的已經push,這怎麼辦呢?

為了澄清我們的討論,我們先看一張圖

那麼就有四種情況要處理:

1,working directory changed, but not staged

2,staged but not commit

3,commit but not push to remote

4,your remote repo changed but not send pull request

對於未提交到本地庫的**,我們可以使用git stash命令,將working directory和index(stage)的改動暫存起來。

git stash list   #列出所有stash

git stash      #將當前的work directory和index的改動暫存起來

git stash drop stash@     #將0號stash刪除

git statsh clear                     #刪除所有stash

這種情況下最好新建立乙個branch來修改bug。這個branch就是基於上次的release。

git branch –v   #顯示當前的branch

git log –10 –oneline  #顯示log

git branch release   #基於sha1的commit新建乙個branch

git checkout release  #切換到release這個branch

git branch –d release  #刪除乙個branch

git merge master release #release的改到merge到master

這種情況,你還是新建乙個branch去修改bug,改動後上傳到your remote,然後在pull request的時候選擇哪個修改bug的branch。

有時候我想臨時忽略乙個檔案,不要讓他被track,比如我的在本地訪問amazon s3比較慢,我想給我的python**加乙個臨時cache,我不想提交(追蹤這個檔案的改動)這個檔案。

我們可以:

git update-index --assume-unchanged #臨時ingore乙個檔案的改動

git update-index --no-assume-unchanged #繼續track這個檔案

對Git工作原理的一些理解

網上有很多關於git的教程,或copy或不完整,且大多停留於表面,看完之後對git僅有非常淺顯的了解,有的只是對幾條簡單的命令進行了敘述。本文將結合git的設計原理和實現方法,幫助讀者理解git,減少讀者的學習成本。git與其它版本控制系統 包括 subversion 和近似工具 的主要差別在於 g...

一些 git 命令

git init 建立版本倉庫 git add 當前目錄下的所有檔案新增到倉庫 git add 檔名 指定檔案新增到倉庫 git commit m 本次提交的說明 把檔案提交到倉庫,git add可以多次呼叫,最後commit提交到倉庫,相當於把當前狀態儲存下來,可以從最近一次的commit恢復檔案...

git 一些記錄

1 git commit a 此時會進入vim編輯模式,可以i鍵輸入提交備註,完成備註後通過esc退出編輯模式,並輸入 q 不儲存並退出,或者 wq 儲存並退出。2 出現如下報錯時 if no other git process is currently running,this probably ...