如何使用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就行了
- 复制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 "你的邮箱"
基本配置就完成了!!!
下面介绍如何将项目下载到本地:
-
在你想要放置项目文件的位置新建一个文件夹
-
右键点击Git Bash Here
-
输入命令:
git clone 粘贴之前复制的项目下载地址
- 回车运行,进入下载
- 下载完成!
然后新建的文件夹里就会出现项目的所有文件啦!!!
啰嗦两句
- 还未注册Github的小朋友,先注册一下哦 Github官网
- 还未下载Git的小朋友,先行下载Git工具趴 git下载点这
提交代码到github
- 把github项目fork到本地
- 拉取你仓库你的同名项目到本地
- 修改里面的代码
- 提交代码操作
前三步,很简单就上面的操作
- 许多开发人员从该存储库克隆,推送到他们自己的独立存储库,并要求集成商引入他们的更改。这是开源或 GitHub 存储库中常见的开发模型类型。
如何提交代码
-
git branch
看下你的本地分支 -
git status
看下你的修改状态(修改了哪个文件,添加了哪个文件,删除了哪个文件) -
git stash
把本次修改先暂存起来,为了拉develop的代码 -
git pull origin develop
每次提交代码前一定要拉代码,保证本地拉到最新 -
git stash pop
把暂存的代码释放出来和develop的合并,有冲突就解决一下 -
git status
解决完冲突后,再看下你的修改状态,确保都是你的本次修改 -
git checkout -b 分支名
切一个新分支,分支名要有意义一点(feat / fix / refine - xxx) -
git add .
添加本次所有的改动文件,如果不想提交那么多,就git add 要提交的文件名
-
git commit -m "提交信息"
提交信息是本次提交的概述,如fix home page ui bug -
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
-
git log
查看log,看一下你有几次commit需要合并
2.git rebase -i HEAD~X
X代表有几次commit需要合并,如HEAD2,HEAD3
把打开的rebase信息中的第二行的开头pick 修改为f,然后ctrl x,保存,会出现成功的提示哦
-
git push -f origin
分支名 搞定
几个常用命令
-
git stash list
查看暂存的所有记录 -
git stash apply stash{X}
释放第x条记录 -
git stash drop stash{X}
删除第x条记录
4.git branch -D 分支名
删除本地分支
5.git push origin --delete 分支名
删除远程分支
删除commit
参考链接:删除commit的三种方法
问题解决
- 代理问题
用了clash导致的
重新设置代理,将你的代理端口号,设置上去。
我的端口是7890,设置如下:
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
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的文件的地址
具体咋用嘞?
- 复制url链接,注意是url链接(浏览器上方框框里的的地址)
- url地址粘贴到DownGit的框框里,然后你会发现地址里面会有tree/master
- 删除掉tree和master,剩下的路径就是对的
- 点击Download就可以下载了
为开源仓库贡献代码
pull request : 拉取请求,我要请求官方仓库拉取我所修改的代码,如果官方同意,我们就可以修改代码了
- 注意:先要向仓库提交代码
文章来源:https://www.toymoban.com/news/detail-790601.html
- 点击新建请求,等待验证通过…
文章来源地址https://www.toymoban.com/news/detail-790601.html
到了这里,关于如何使用Git将Github项目拉到本地的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!