如何實現將別人的git https拷貝到自己git項目上?
gitee碼雲網頁會限制每天上傳20個文件,導致直接通過拖文件夾比較非常不方便
1.首先將git https的url 拷貝下來,在pycharm中拉下來
2.打開拉下來的文件夾,刪除 .git文件夾
3.在git bash客户端CMD命令窗口執行init操作,代碼如下
1 cd existing_folder #進入你需要上傳的文件夾根目錄
2 git init
3 git remote add origin
4 git@gitee.com:xxxxx #碼雲上創建倉庫的ssh地址,不可以是https地址
5 git add .
6 git commit -m "Initial commit"
7 git push -u origin master
解決錯誤:
1.如何沒有在git的hosts文件中設置gitee域名,在執行git push -u origin master這步會報錯,就會報如下錯誤
報錯原因:在xx/Git/etc/hosts文件中沒有添加gitee域名,在hosts中添加212.64.62.174 gitee.com,如果是github 則添加192.168.1.117 github.com
2.如果沒有設置gitee的ssh公鑰 在執行在執行git push -u origin master這步會報錯,就會報如下錯誤
git@gitee.com: Permission denied (publickey). fatal: Could not read from remote repository.
報錯原因:在碼雲中沒有配置SSH公鑰
那麼我們就需要生成和添加SSH公鑰
官方文檔:https://gitee.com/help/articles/4181#article-header0 (這個比較清晰)
幫助文檔還有這個:http://git.mydoc.io/?t=154712
碼雲提供了基於SSH協議的Git服務,在使用SSH協議訪問倉庫倉庫之前,需要先配置好賬户/倉庫的SSH公鑰。
你可以按如下命令來生成 sshkey:
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
# Generating public/private rsa key pair...
注意:這裏的 xxxxx@xxxxx.com 只是生成的 sshkey 的名稱,並不約束或要求具體命名為某個郵箱。
現網的大部分教程均講解的使用郵箱生成,其一開始的初衷僅僅是為了便於辨識所以使用了郵箱。
按照提示完成三次回車,即可生成 ssh key。通過查看 ~/.ssh/id_rsa.pub 文件內容,獲取到你的 public key
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
複製生成後的 ssh key,去碼雲的個人設置中 配置SSH公鑰
添加後,在終端(Terminal)中輸入
ssh -T git@gitee.com
如果返回如下就表示SSH公鑰添加成功:
Welcome to Gitee.com, yourname!
再次執行git push又出現瞭如下報錯:
error: failed to push some refs to
此時百度了網上解決辦法,轉載自 https://www.jianshu.com/p/c6f2e1ca2999
分支名不完整
emmm,這個錯誤大概是最難發現的了,不是説難度係數高,而是大家都把以本地master與遠程master為例去寫答案,於是大家會下意識忽略掉本地分支與遠程分支名不一樣的情況。(也可能這個大家只包含了我....)
git推送的完整寫法如下:
git push @remoteName @localBranch:@remoteBranch
// eg.remoteName:origin localBranch:ceshi remoteBranch:test
git push origin ceshi:test
但是如果本地分支與遠程分支名字一樣的話,是可以簡寫的。例如本地和遠程的分支名都是master:
git push origin master
沒有提交代碼
可以用 git status查看是否忘了把代碼提交上去了。若是忘了,提交了就行。
git add .
git commit -m "This is a new commit"
git push origin master
本地與遠程產生衝突
或是有其他協作者提交了代碼,或是你之前在遠程上直接做了處理。這部分有兩個處理方法,一是直接強覆蓋,二是先把遠程的變化拉取下來,解決衝突後,再一併提交。
1.強覆蓋
git push -f origin master
2.拉取再提交
git pull –-rebase origin maste
git push origin master
當然本人是建議能第二種就第二種,暴力美學越少見越好。
--rebase到底是幹嘛用的,為什麼要加他?不知道是什麼意思的時候,用起來也忐忑。所以又特意去了解了一下這個配置的作用。這部分有個博主寫的詳細又直觀:
以上就是本人解決的所有報錯了