github文件上传全流程-新手入门系列(超详细!!!)

文章目录

  • 1.获取网络连接
    • windows
    • mac
  • 2.进入github官网创建个人账号
  • 3.进入github内部创建个人仓库(repositories)
  • 4.安装git软件
    • windows
    • mac
  • 5.第一次提交文件到github仓库时(仓库中无文件)
    • 5.0总体流程
    • 5.1配置免密登录
    • 5.2设置提交代码时的用户信息
    • 5.3构建本地仓库数据
    • 5.4连接本地仓库和远程仓库
    • 5.5提交代码到远程仓库(github)
  • 6.非第一次使用github仓库(仓库中有文件)
    • 6.1删除远程仓库中的部分内容
    • 6.2在有文件的条件下,向远程仓库添加文件
  • 7.上传大文件
    • 7.1安装git lfs
    • 7.2上传大文件
  • 8.GitHub 用户名与昵称修改
    • 8.1昵称修改
    • 8.2用户id(用户名)修改
  • 9.git修改需要连接的远程仓库地址
    • 1.修改命令
    • 2.先删后加
    • 3.直接修改config文件
  • 10.添加或更新token
  • 11.GitHub分支


1.获取网络连接

直接访问github网站是非常慢的,甚至有时可能不能访问,所以需要重新获取网络连接。
使用下面网站:https://tool.chinaz.com/dns/ ->在输入框中输入github.com,github.global.ssl.fastly.net,assets-cdn.github.com
github文件上传全流程-新手入门系列(超详细!!!)_第1张图片
不断点击并查看其给出的ip地址和TTL时间(响应往返时间,越小越好) 记录一个TTL时间比较短的IP地址。根据上图我们选择第二个IP。

windows

在windows本地打开/c/windows/system32/drivers/etc/HOSTS文件并在文件最后一行
github文件上传全流程-新手入门系列(超详细!!!)_第2张图片

添加我们得到的最短ttl时间对应的IP地址+github.com,github.global.ssl.fastly.net,assets-cdn.github.com
eg:
在这里插入图片描述


mac

进入命令行
vi /etc/hosts
同样添加上述内容
保存并关闭


解释下为什么这样有一定效果,这不得不提我们访问网站的流程:

  1. 域名解析(这里需要借助DNS域名服务器,所以如果我们与域名服务器的TTL越短,我们就能更快的得到github服务器的IP,从而能够更快访问github网站)
  2. 为了将消息从你的 PC 上传到服务器上.过程中需要用到 1P 协议、ARP 协议和 0SPF 协议
  3. 发起TCP的3次握手
  4. 建立 TCP 连接后发起 http 请求
  5. 服务器响应 htp 请求
  6. 浏览器解析 html 代码,并请求 html 代码中的资源(如 js、css、图片等)
  7. 断开 TCP 连接
  8. 浏览器对⻚面进行渲染呈现给用户

当然,从以上过程我们可以发现上述办法只是加快了我们知道网站IP的速度,但是有些时候在内网情况下,github就是访问不到的。这种情况,我们可以考虑换成手机热点,或者使用科学上网软件。再不济就在Gitee上找找是否有这个资源。


2.进入github官网创建个人账号

github


3.进入github内部创建个人仓库(repositories)

github文件上传全流程-新手入门系列(超详细!!!)_第3张图片


4.安装git软件

windows

下载链接:https://git-scm.com/downloads


下载后,只需要选一下安装路径,其他不用考虑,直接下一步,下一步…即可。
如果需要详细选择可以参考:知乎
安装完成后,可在任意一个文件夹下鼠标右键选择使用git bash(命令行的方式)来进行操作


mac

1.下载并安装brew
​/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

x86架构:
2.下载并安装git
brew install git
3.下载并安装MacPorts
sudo port install git
4.安装git-gui(可以不安装,只使用命令行)
brew install git-gui

arm架构:
替换brew installarch -arm64 brew installi


5.第一次提交文件到github仓库时(仓库中无文件)


5.0总体流程

1.add工作台->暂存池
2.commit 暂存池->本地仓库(需要初始化 git init())
3.push 本地仓库->远程仓库


5.1配置免密登录

**(1) **
打开git命令行(git bash) 或者 命令行 并输入

  1. ssh-keygen -t ed25519 -C "[email protected]"
    如果您使用的是不支持Ed25519算法的遗留系统,则使用:
  2. ssh-keygen -t rsa -b 4096 -C "[email protected]"

三次回车得到密钥,
github文件上传全流程-新手入门系列(超详细!!!)_第4张图片


(2)
上述操作如果成功,则会在 ~/ 下生成.ssh文件夹
windows
在windows找到~ (一般是指c/user/…) /.ssh下的id_rsa.pub使用记事本打开 id_rsa.pub or id_ed25519.pub,复制里面的 key。

mac

cd ~/.ssh
ls

github文件上传全流程-新手入门系列(超详细!!!)_第5张图片
cat id_ed25519.pub
在这里插入图片描述
将它复制下来


(3)
进入github->在setting 中找到ssh and GPG keys,然后添加我们复制的密钥并添加.再回到git命令行输入
github文件上传全流程-新手入门系列(超详细!!!)_第6张图片


回到命令行 输入ssh -T [email protected] 查看是否已经连接成功.(出现successful即可)
在这里插入图片描述


5.2设置提交代码时的用户信息

设置用户名
git config --global user.name "user_name"(自己的用户名,如果需要修改请参考本文第8部分)
设置用户账号(需要是自己的注册账号)
git config --global user.email "[email protected]"(自己的账号邮箱)


5.3构建本地仓库数据

第一步:创建本地文件夹
法1.
进入命令行
git mkdir bigdata #创建本地目录
cd bigdata #进入到本地目录
使用pwd 命令得到当前文件路径,并在windows(或mac)系统中找到路径下的刚创建的文件夹
法2.
直接在本地创建一个文件夹,然后右键选择git bash 命令行进入(适用于windows)

第二步:放入我们想要上传的文件
找到文件夹,将想要上传的文件放到刚创建的文件夹下

第三步:本地仓库
git init #本地仓库初始化
git add . # . 是添加当前目录下的所有文件到本地暂存区,也可指定具体文件 eg: test
git commit -m "operation description" #将本地暂存区的内容添加到本地仓库,操作名称为operation description

补充
add 进入的文件是以最后一次为准,只要没有commit提交到本地仓库,之前无论多少次add,都是看最后一次。
e.g.
git add test.py =>print(“hello world")
git add test.py =>print(“very good”) #会覆盖掉暂存区中的test.py
git commit -m “…”
则实际放到本地仓库中的 test.py =>(”very good")

如果想要删除本地仓库:
删除文件夹中的.git文件夹 ( 在此之后想再次连接远程仓库就需要重新开始创建本地仓库 )
判断是否git init初始化成功,就看是否存在.git文件存在(注意.git为隐藏文件需要打开文件的隐藏文件选项或者命令行ls -al


5.4连接本地仓库和远程仓库

回到github网站
在自己github创建的仓库中的code栏找到类似如下链接:
[email protected]:269-1/The-road-of-data-division-s-growth..git(.git结尾)
1.
在这里插入图片描述

或者
2.
github文件上传全流程-新手入门系列(超详细!!!)_第7张图片

并将其复制
回到本地仓库命令行
git remote add origin +复制的内容(实际可看为是远程仓库的链接)
git remote -v可以查看已有的远程库信息
删除已经连接的远程库可以使用git remote rm origin


5.5提交代码到远程仓库(github)

git push -u origin master#推送本地仓库数据到远程仓库

注意:
登录的用户名和密码是账户用户名(用户id)和token。

Username for 'https://github.com': username
Password for 'https://[email protected]': new_token

第一次使用请参考本文第10部分,设置token令牌。否则会出现:
在这里插入图片描述


6.非第一次使用github仓库(仓库中有文件)


6.1删除远程仓库中的部分内容

可以借助本地仓库与远程仓库的同步机制实现:

  1. 将远程仓库中的内容拉回到暂存区中(git pull --rebase origin master)(如果在此步之前已经使用了pull则直接进行第二步)
  2. 通过使用git rm -r --cached +文件名 删除暂存区中的文件
  3. 使用commit提交到本地仓库更新本地仓库(git commit -m "本次操作描述"
  4. 使用push推送到远程仓库。就可以实现对远程仓库文件的删除。(git push -u origin master

注意:
登录的用户名和密码是账户用户名(用户id)和token。

Username for 'https://github.com': username
Password for 'https://[email protected]': new_token

在push或pull时如果出现以下情况,请参考10,更新token令牌
在这里插入图片描述


6.2在有文件的条件下,向远程仓库添加文件

  1. 将github上的文件拉回到暂存区中(git pull --rebase origin master,如果之前使用了pull,或本地目录数据与github远程仓库的数据一致或有所增加,则跳转至下一步)。pull的主要目的防止操作过程中导致远程仓库中数据丢失以及使得文件总体更规整,而非显示很多commit信息。
  2. 将想要加入的文件e.g. test.py放到当前的目录(执行命令行的目录,可用pwd命令查看)中
  3. 使用git add .向暂存区区中加入当前目录所有文件 或者加入某个文件 e.g. test
  4. 提交文件(git commit -m "本次操作描述")到本地仓库
  5. 推送文件到远程仓库github上(git push -u origin master)。

在本地仓库与远程仓库连接的情况下:当本地缓冲区或者目录有改变时需要提交这次改变(暂存区改变使用commit,如果是本地目录被删除就只能重新创建本地仓库再重新连接远程仓库了)并且push到远程仓库之后才能使用pull 。相当于本地目录、暂存区、本地仓库、远程仓库是紧密相连的
pull的目的:同步缓冲区数据和远程仓库数据,防止非自身意愿的情况下不小心删除了远程仓库中的数据
一般而言pull只在第一次同步远程仓库和本地目录时使用,不在操作过程中使用pull。

注意:
登录的用户名和密码是账户用户名(用户id)和token。

Username for 'https://github.com': username
Password for 'https://[email protected]': new_token

在push或pull时如果出现以下情况,请参考10,更新token令牌
在这里插入图片描述


7.上传大文件

一般github一个仓库不能存放>100M的文件,所以如果需要上传大文件e.g.图片数据…则需要安装Git LFS


7.1安装git lfs

windows
以及集成到git软件中了,可以直接使用
mac
x86架构:
brew install git-lfs
arm架构:
替换brew installarch -arm64 brew installi


7.2上传大文件

第一步
将大文件放到本地目录中

第二步
git lfs track "large_file_name"
这会生成一个.gitattributes文件,它记录了large_file的信息

第三步 上传大文件的信息
git add .gitattributes 添加到暂存区
git commit -m "this is the large file message" 添加到本地仓库
git push -u origin master 上传到远程仓库

注意:
登录的用户名和密码是账户用户名(用户id)和token。

Username for 'https://github.com': username
Password for 'https://[email protected]': new_token

在push或pull时如果出现以下情况,请参考本文10,更新token令牌
在这里插入图片描述

第四步 上传大文件
git add large_file_name
git commit -m "this is the large file"
git push -u origin master

可能会出现:
github文件上传全流程-新手入门系列(超详细!!!)_第8张图片
按提示在命令行输入上述命令回车,然后重新上传即可
github文件上传全流程-新手入门系列(超详细!!!)_第9张图片
但是
需要注意的是git lfs是有容量限制的,free 用户只有1G,可通过setting中billing and plans查看:


最下面 git lsf data:
github文件上传全流程-新手入门系列(超详细!!!)_第10张图片


8.GitHub 用户名与昵称修改

github有两个名字,一个是对外展示的昵称,一个是用户ID名(用户名)


8.1昵称修改

github文件上传全流程-新手入门系列(超详细!!!)_第11张图片

8.2用户id(用户名)修改

github文件上传全流程-新手入门系列(超详细!!!)_第12张图片
github文件上传全流程-新手入门系列(超详细!!!)_第13张图片
github文件上传全流程-新手入门系列(超详细!!!)_第14张图片


9.git修改需要连接的远程仓库地址

即更换仓库进行存储,上传,拉取
这里有三种方法

1.修改命令

git remote origin set-url [url]

2.先删后加

git remote rm origin
git remote add origin [url]

3.直接修改config文件

git文件夹,找到config,编辑,把旧的项目地址替换成新的。
github文件上传全流程-新手入门系列(超详细!!!)_第15张图片
vi config
将其中的url换为新地址保存退出即可


10.添加或更新token

点击setting ,在其中选择developer setting查看自己的token是否过期。github文件上传全流程-新手入门系列(超详细!!!)_第16张图片
选Personal access->tokens,如果没有或已经过期则新创建一个github文件上传全流程-新手入门系列(超详细!!!)_第17张图片

大家可根据需要选择:(第一次使用,如果嫌麻烦可以直接全选read and write)

完成后的效果如下:

github文件上传全流程-新手入门系列(超详细!!!)_第18张图片
注意:
一定及时复制,并保存该token,否则之后就看不到了,只能重新创建。


11.GitHub分支

默认分支(主分支):master
主要作用:在进行多人协作开发的时候,为了防止互相干扰
例如:需要设计新功能则可新建一个分支,后期觉得可行,则可合并到master分支上。
git branch -a(查看所有分支包括本地分支和远程分支).
git branch -r查看远程分支
git branch branchname 创建分支
git checkout branchname切换分支
git checkout -b branchname创建并切换分支
git push origin banchname 推送本地仓库的banchname分支到github远程仓库
git branch -d branchname 删除本地分支

克隆某一分支数据:
git glone -b branchname git_url

补充:
1、git主分支(master)。它是自动建立,用于发布重大版本更新。
2、git开发主分支(develop)。日常开发在此分支上进行。
3、git临时性分支:主要是应对日常开发中的遇到的版本问题的。

  • 功能(feature)分支:它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。可以采用feature-*的形式命名。
  • 预发布(release)分支:指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。
    预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,可以采用release-*的形式。
  • 修补bug(hotfix)分支:软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。
    修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用hotfix-*的形式。

这部分主要参考:https://blog.csdn.net/HcJsJqJSSM/article/details/84558229


你可能感兴趣的:(github,git,GitHub上传代码及文件,GitHub,ssh远程连接,GitHub,删除文件)