清除 git 所有遠端舊的紀錄 重新來過
git -記錄目前 git 遠端倉儲的路徑 →
刪除工作目錄中的 .git 目錄 →
重新初始化本地的 git 倉儲 →
設定遠端 git 倉儲路徑 →
將檔案加入本地倉儲 →
強迫推送到遠端倉儲
記錄設定
切換到工作目錄,並記錄下遠端倉儲的路徑。 遠端倉儲的路徑可以看目錄下的 .git/config
檔案內容或使用 git config --get remote.origin.url 命令查閱。
.git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = git@domain:user/repo.git   // (1)
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
- 
記錄下遠端倉儲的路徑,後面重設時需要用到
 
刪除 .git 並重新推送
切換到工作目錄,且以下命令都必須在工作目錄下執行。
> rm -rf .git      // (1)
> git init         // (2)
> git remote add origin git@domain:user/repo.git // (3)
> git add --all    // (4)
> git commit -a -m "clean"          // (5)
> git push -u origin master --force // (6)
- 
清除本地端所有紀錄
 - 
重新初始化本地 git
 - 
重新加入遠端
 - 
重新加入本地檔案
 - 
並交付所有本地檔案
 - 
強迫更新所有本地檔案到遠端
 
簡易 script
cleanGit.sh
#!/bin/bash
if test -z "$1" ; then
  echo "error: must has path param"
  exit 1
fi
cd $1 || (echo "Cannot change directory!" 1>&2 && exit 1)
URL=$(git config remote.origin.url)
if test -z "$URL" ; then
    echo "Not found git!" 1>&2
    exit 1
fi
echo "remote.origin.url: $URL"
echo "clean git"
rm -rf .git
echo "reset git"
git init
git remote add origin "$URL"
git add --all
git commit -a -m "new"              // (1)
git push -u origin master --force
- 
"new" 可以換成其他合適的說明