如何使用Git将Github项目拉到本地

如何使用Git将Github项目拉到本地


前言

因为国内访问GIthub速度比较慢,复制粘贴代码又慢效率也低,所以建议下载Git工具,直接把Github的项目整个下载到本地的文件夹



安装配置git

在这里插入图片描述

步骤如下:

sudo apt-get install git

git config --global user.name "your user name"

git config --global user.email "your email"

ssh-keygen -C "your email" -t rsa

cd ~/.ssh

gedit id_rsa.pub	将其中的所有内容复制,到git上添加SSH Key


使用步骤


1.打开Github

  • 找到你想要获取的项目

找到项目

fork仓库(非必须)

  • 如果你需要对代码进行更改,然后还需要变成自己的项目,在自己的仓库进行开发,可以fork下来(不需要可以跳过)

为什么要fork仓库?

因为我们没有任何的权限向GitHub上的仓库提交任何的修改,我们只能把仓库fork到本地,然后在本地进行修改后,再提交到GitHub上,这样就可以修改仓库了

如何fork仓库

超级简单…hhhh
点击一个fork就行了

点击fork


  • 复制GIthub项目的下载地址

在这里插入图片描述

  • 如果配置了SSH,可以使用SSH获取地址,使用SSH拉取速度会更快

拉取不同的分支(非必须)

上面是拉取的master分支,也就是主分支,如果你需要拉取部分或其他的分支可以这样:

步骤:

  • 找到master按钮
  • 选择要拉取的分支
  • 新建文件夹–>右键–>git bash here
# 步骤基本和拉取项目一样,但是命令变了
$ git clone -b [分支名] [项目地址]


2.打开Git

如果你是刚下载的Git,先配置一下用户名和邮箱

# 在Git Bash中输入以下命令
1. git config --global user.name "你的用户名"
2. git config --global user.email "你的邮箱"

基本配置就完成了!!!

下面介绍如何将项目下载到本地:

  1. 在你想要放置项目文件的位置新建一个文件夹
    在这里插入图片描述

  2. 右键点击Git Bash Here

  3. 输入命令:git clone 粘贴之前复制的项目下载地址


在这里插入图片描述

  1. 回车运行,进入下载
  2. 下载完成!

然后新建的文件夹里就会出现项目的所有文件啦!!!



啰嗦两句



提交代码到github

  1. 把github项目fork到本地
  2. 拉取你仓库你的同名项目到本地
  3. 修改里面的代码
  4. 提交代码操作

前三步,很简单就上面的操作



  • 许多开发人员从该存储库克隆,推送到他们自己的独立存储库,并要求集成商引入他们的更改。这是开源或 GitHub 存储库中常见的开发模型类型。

在这里插入图片描述

在这里插入图片描述

如何提交代码

  1. git branch 看下你的本地分支

  2. git status 看下你的修改状态(修改了哪个文件,添加了哪个文件,删除了哪个文件)

  3. git stash 把本次修改先暂存起来,为了拉develop的代码

  4. git pull origin develop 每次提交代码前一定要拉代码,保证本地拉到最新

  5. git stash pop 把暂存的代码释放出来和develop的合并,有冲突就解决一下

  6. git status 解决完冲突后,再看下你的修改状态,确保都是你的本次修改

  7. git checkout -b 分支名 切一个新分支,分支名要有意义一点(feat / fix / refine - xxx)

  8. git add . 添加本次所有的改动文件,如果不想提交那么多,就git add 要提交的文件名

在这里插入图片描述

  1. git commit -m "提交信息" 提交信息是本次提交的概述,如fix home page ui bug
    在这里插入图片描述

  2. git push origin 分支名 直接点击remote中的URL,用浏览器打开,补充一下提交信息,assignee给同伴,勾选merge options,然后点commit就好了

注:git commit -m "..."以后,发现本地少提交一个文件,可以用git commit --amend修补提交,再次git push -f 就可以了,不会出现多个commit的情况


远程提交仓库

create a new repository on the command line

echo "# doc_qa" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/xxx/xxx.git
git push -u origin main

push an existing repository from the command line

git remote add origin https://github.com/xxx/xxx.git
git branch -M main
git push -u origin main

  • 遇到这个报错(Windows下)

问题分析:

格式化与多余的空白字符,特别是在跨平台情况下,有时候是一个令人发指的问题。由于编辑器的不同或者文件行尾的换行符在 Windows 下被替换了,一些细微的空格变化会不经意地混入提交,造成麻烦。虽然这是小问题,但它会极大地扰乱跨平台协作。

  • 其实,这是因为在文本处理中,CR(CarriageReturn),LF(LineFeed),CR/LF是不同操作系统上使用的换行符,

Dos和Windows平台: 使用回车(CR)和换行(LF)两个字符来结束一行,回车+换行(CR+LF),即“\r\n”;


Mac 和 Linux平台:只使用换行(LF)一个字符来结束一行,即“\n”;
最早Mac每行结尾是回车CR 即’\r’,后mac os x 也投奔了 unix。

  • 许多 Windows 上的编辑器会悄悄把行尾的换行(LF)字符转换成回车(CR)和换行(LF),或在用户按下 Enter 键时,插入回车(CR)和换行(LF)两个字符。

在这里插入图片描述

解决:

Git 可以在你提交时自动地把回车(CR)和换行(LF)转换成换行(LF),而在检出代码时把换行(LF)转换成回车(CR)和换行(LF)。


#win下 提交时转换为LF,检出时转换为CRLF
$ git config --global core.autocrlf true

#Linux、Mac 提交时转换为LF,检出时不转换
$ git config --global core.autocrlf input


合并一次MR中的多个commit

  1. git log 查看log,看一下你有几次commit需要合并

2.git rebase -i HEAD~X X代表有几次commit需要合并,如HEAD2,HEAD3

把打开的rebase信息中的第二行的开头pick 修改为f,然后ctrl x,保存,会出现成功的提示哦

  1. git push -f origin 分支名 搞定


几个常用命令


  1. git stash list 查看暂存的所有记录

  2. git stash apply stash{X} 释放第x条记录

  3. git stash drop stash{X} 删除第x条记录

4.git branch -D 分支名 删除本地分支

5.git push origin --delete 分支名 删除远程分支



删除commit


参考链接:删除commit的三种方法



问题解决

  1. 代理问题
用了clash导致的
重新设置代理,将你的代理端口号,设置上去。
我的端口是7890,设置如下:

git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

  1. error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8) send-pack: unexpected disconnect while reading sideband packet Writing objects: 100% (120/120), 91.63 MiB | 127.00 KiB/s, done. Total 120 (delta 2), reused 0 (delta 0), pack-reused 0 fatal: the remote end hung up unexpectedly
  • 原因可能有文件过大、网速太差、以及一些国外资源因为墙的因素影响等等

解决方式:

1、文件太大,解决方式为git添加 compression 配置项

git config --global core.compression -1

  • compression 是压缩的意思,从 clone 的终端输出就知道,服务器会压缩目标文件,然后传输到客户端,客户端再解压。取值为 [-1, 9],-1 以 zlib 为默认压缩库,0 表示不进行压缩,1…9 是压缩速度与最终获得文件大小的不同程度的权衡,数字越大,压缩越慢,当然得到的文件会越小

2、可以增加git的缓存大小
git config --global http.postBuffer 1048576000 (1G)

3、配置git的最低速和最低速时间

git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999 单位 秒

  • 如果是网络问题
git config --global http.version HTTP/1.1
或者
git config --global http.version HTTP/2
  • 上传文件太大
    • 设置大的缓存区
    • 设置长响应时间
    • 浅克隆
git config http.postBuffer 524288000

git clone --depth=1 xxx
  • global配置对当前用户生效,如果需要对所有用户生效,则用–system


项目实在太大…

  • 且你只需要其中的某一个文件或者文件夹

用这个网站:DownGit

在框框里输入你需要的下载的GitHub的文件的地址

在这里插入图片描述
具体咋用嘞?

  1. 复制url链接,注意是url链接(浏览器上方框框里的的地址)
  2. url地址粘贴到DownGit的框框里,然后你会发现地址里面会有tree/master
  3. 删除掉tree和master,剩下的路径就是对的
  4. 点击Download就可以下载了

为开源仓库贡献代码

pull request : 拉取请求,我要请求官方仓库拉取我所修改的代码,如果官方同意,我们就可以修改代码了

  • 注意:先要向仓库提交代码

在这里插入图片描述

  • 点击新建请求,等待验证通过…

在这里插入图片描述

  • 32
    点赞
  • 220
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值