如何使用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

  • 找到你想要获取的项目

如何使用Git将Github项目拉到本地_第1张图片

  • 复制GIthub项目的下载地址

如何使用Git将Github项目拉到本地_第2张图片

2.打开Git

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

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

基本配置就完成了!!!

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

  1. 在你想要放置项目文件的位置新建一个文件夹
    如何使用Git将Github项目拉到本地_第3张图片

  2. 右键点击Git Bash Here

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

如何使用Git将Github项目拉到本地_第4张图片

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

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

啰嗦两句

  • 还未注册Github的小朋友,先注册一下哦 Github官网
  • 还未下载Git的小朋友,先行下载Git工具趴 git下载点这

提交代码到github

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

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

如何提交代码

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

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

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

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

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

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

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

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

  6. git commit -m "提交信息" 提交信息是本次提交的概述,如fix home page ui bug

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

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


  • 遇到这个报错(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
-or
git config --global http.version HTTP/2
  • 上传文件太大
git config http.postBuffer 524288000

参考链接

你可能感兴趣的:(教程操作,git,github)