我是 git 新手,我知道當你在一個專案上單身時如何推動更改,但現在我在一個專案上有三個開發人員。所以我有一個專案,它直接從存盤庫下載為 zip 檔案(不是克隆),然后我做了很多更改,我的同事也同時做了一些更改,然后他推送了它們。現在我需要提取他的更改,合并它們并推送,但最終我遇到了問題,當我推送檔案(成功)時,即使我沒有觸摸和更改,所有檔案也會更新。
所以這是我的步驟:
git init
然后我管理遠程存盤庫:
git remote add origin <remote url>
并且可以檢查它:
git remote -v
并收到:
> origin <remote url> (fetch)
> origin <remote url> (push)
然后我添加檔案并提交更改:
git add .
git commit -m "Test"
然后我試圖從存盤庫中提取更改:
git pull origin master
并收到一條訊息fatal: refusing to merge unrelated histories并輸入:
git pull origin master --allow-unrelated-histories
然后我有一個訊息Please move or remove them before you merge。我洗掉它們并再次拉:
git clean -f -d -x
git pull origin master
并獲得一些合并沖突,我手動修復它們并再次添加檔案并提交:
git add .
git commit -m "Merge conflicts Test"
最后我推送檔案:
git push origin master
我看到的是所有檔案都更新了兩個變體(15 分鐘前和 10 分鐘前): 兩次提交的推送結果
所以第一次提交時第一個(15 分鐘),第二次提交(10 分鐘),但是為什么第一次提交更新每個檔案,這是因為我沒有克隆存盤庫,對嗎?如果是,我該如何解決?
uj5u.com熱心網友回復:
更安全的方法是克隆遠程存盤庫,而不是在本地初始化并嘗試推送。
克隆后,您可以匯入您的作業(基于初始 zip 存檔在本地完成,在另一個檔案夾中,您在其中做了很多更改):
git config --global rebase.autostash true
git config --global pull.rebase true
git clone https://remote/url/reponame
cd reponame
git --work-tree=../otherfolder add .
git commit -m "Import my work"
git pull
# resolve conflict
git push
換句話說,將您的本地存盤庫放在一邊(您在其中嘗試了 a pull --allow-unrelated-histories,這不是一個好主意)。
并從官方克隆做所有事情。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/386544.html
