如何實現將別人的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
到底是干嘛用的,為什么要加他?不知道是什么意思的時候,用起來也忐忑。所以又特意去了解了一下這個配置的作用。這部分有個博主寫的詳細又直觀:
https://blog.csdn.net/MBuger/article/details/70197532