git學習筆記(1)如何將clone到本地代碼上傳到自己的git項目


如何實現將別人的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

 
以上就是本人解決的所有報錯了 
堅持做筆記,會讓自己收獲更多.........

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM