git学习笔记(1)如何将clone到本地代码上传到自己的git项目

时间:2024-03-12 19:48:12

如何实现将别人的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

 
以上就是本人解决的所有报错了 
坚持做笔记,会让自己收获更多.........