portable git:我如何獲得我的代碼的最新版本?



git version update (8)

我懷疑發生了什麼事情可能是因為你刪除了你修改過的文件(因為你不關心這些修改),現在git正在刪除這個修改。

這是一種將你的修改從你的工作副本移動到“隱藏”(如果事實證明你再次需要它們)的方法,那麼你可以從上游取下最新的變化。

git stash  
git pull

如果您想要檢索文件(與上游更改和所有文件可能存在衝突),請運行git stash apply將這些更改git stash apply在代碼頂部。 這樣,你有一個“撤消”的方法。

我正在使用Git 1.7.4.1。 我想從存儲庫中獲取我的代碼的最新版本,但我收到錯誤...

$ git pull
….
M   selenium/ant/build.properties
….
M   selenium/scripts/linux/get_latest_updates.sh
M   selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.

我刪除了該工具所抱怨的文件的本地副本,但我仍然收到錯誤消息。 如何從遠程回購中檢出最新版本? - 戴夫


Answer #1

我知道你想垃圾你的本地變化,並拉下你的遙控器上的東西?

如果一切都失敗了,而且如果你(很可理解)害怕“重置”,最簡單的事情就是將原點克隆到一個新目錄中,並將舊的目錄廢棄。


Answer #2

通過運行此命令,您將獲得通常為您項目版本的最新標記:

git describe --abbrev=0 --tags

Answer #3

你必須先合併你的文件。 做一個git status來查看需要合併的文件(意味著你需要首先解決衝突)。 一旦完成,請做git add file_merged並再次執行pull


Answer #4

試試這個代碼

cd /go/to/path
git pull origin master

Answer #5

這聽起來像你有core.autocrlf問題。 如果將CRLF換行符簽入到存儲庫中,core.autocrlf = true可能會給出您在Windows上描述的問題。 嘗試禁用存儲庫的core.autocrlf,並執行硬重置。


Answer #6

如果您不關心任何本地更改(包括剛剛發生的未跟踪或生成的文件或子存儲庫),並且只想從回購中獲取副本:

git reset --hard HEAD
git clean -xffd
git pull

再次,這將會導致您在本地做出的任何更改,請謹慎使用。 這樣做時rm -Rf考慮rm -Rf


Answer #7

案例1:不關心本地變化

  • 解決方案1:獲取最新的代碼並重置代碼

    git fetch origin
    git reset --hard origin/[tag/branch/commit-id usually: master]
    
  • 解決方案2:刪除文件夾並再次克隆:D

    rm -rf [project_folder]
    git clone [remote_repo]
    

案例2:關心本地變化

  • 解決方案1:與新在線版本不衝突

    git fetch origin
    git status
    

    將會報告如下內容:

    Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
    

    然後獲取最新版本

    git pull
    
  • 解決方案2:與新的在線版本衝突

    git fetch origin
    git status
    

    將會報告如下內容:

    error: Your local changes to the following files would be overwritten by merge:
        file_name
    Please, commit your changes or stash them before you can merge.
    Aborting
    

    提交您的本地更改

    git add .
    git commit -m ‘Commit msg’
    

    嘗試獲取更改(將失敗)

    git pull
    

    將會報告如下內容:

    Pull is not possible because you have unmerged files.
    Please, fix them up in the work tree, and then use 'git add/rm <file>'
    as appropriate to mark resolution, or use 'git commit -a'.
    

    打開衝突文件並解決衝突。 然後:

    git add .
    git commit -m ‘Fix conflicts’
    git pull
    

    將會報告如下內容:

    Already up-to-date.
    

更多信息: 如何使用'git reset --hard HEAD'恢復到以前的提交?





git