開始用 git 的時候我只會
git clone git pull git push
這三個命令滿足了我的基本需求,到自己創建倉庫的時候遇到了問題,
git remote add origin https://github.com/logig/wechat-shake.git
git push -u/--set-upstream origin master
上面是官方提示的方法,只有倉庫是空的時候才可以這樣用。
如果在創建倉庫時選擇了添加 license 文件等操作,按上面來操作就會報錯。
以下是我的解決方法,
git remote add origin https://github.com/logig/wechat-shake.git
git pull
git branch -u/--set-upstream-to origin/master # 下一次 push 就不用帶 -u 了
git pull
git push
問題解決。
執行每一步命令后觀察 .git/config 文件的變化,下面是我對這個過程的理解,
[remote "origin"]
url = https://github.com/logig/wechat-shake.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
git remote add origin 增加了一個 remote 項。Git 是分布式的,可以有多個 remote,
比如,我可以再添加一個碼雲的 remote
git remote add oschina https://git.oschina.net/logig/wechat-shake.git
[remote "origin"]
url = https://github.com/logig/wechat-shake.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "oschina"]
url = https://git.oschina.net/logig/wechat-shake.git
fetch = +refs/heads/*:refs/remotes/oschina/*
git push不帶參數的時候 push 到一個默認的 remote,git branch -u就是起到設置默認 remote 的作用。
也可以 git push oschina 推到任意 remote。
git 的命令比較多,但是每個命令都可以方便的查看幫助 git help remote/push/branch/...
