Git 使用笔记

13 篇文章 21 订阅

Part.I 准备工作

下面是一些传送门

Chap.I Windows Git Bash 软件安装及配置

Git Bash 下载安装大体步骤如下,详细看"小白教程"(上面)

  • St1:进官网下载适合自己电脑的Git Bash,之后安装,一路next 完成安装;
  • St2:准备一个文件夹用于存放 Git 项目;
  • St3:运行Git Bash软件,进行一波终端操作
#1'首先进入刚才你创建的用于存放Git项目的文件夹
cd c:/gwork/Git   # or  cd c:\\gwork\\Git

#2'然后初始化
git init

#3'创建ssh key   your_email@example.com 是你注册git的邮箱
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" #一路enter

#4'在终端复制ssh key
clip < ~/.ssh/id_rsa.pub
  • St5:上面最后一个命令已经复制(clip不就是复制嘛)了ssh key;

  • St6:浏览器登录Git账号,点击“头像右边下三角”->【Settings】->【SSH and GPG keys】->【New SSH keys】名字随便起,然后粘贴刚才复制的ssh keys到第二个框框中,之后点击【Add SSH keys】

  • St7:回到Git Bash 输入ssh -T git@github.com 之后大功告成!

  • St8:简单设置:

git config --global user.name "your name" #最好和git账号名字一样
git config --global user.email "your_email@example.com" #你的git注册邮箱

Git Bash 配置到这里就行了,自己本地与网页端交互请看“实操小技巧”下面的“GitHb上传下载资源”部分。

Chap.II Useful Information

这部分记录一些重要的信息,主要是一些常识,虽然现在看起来有点冗余,但是当时的自己却如获至宝,不想删。

首先是以.gitxx后缀的文件

文件作用
.gitkeep在了解这个文件之前,需要知道git是不能追踪空的目录的。如果你有一个空的目录,git会对它视而不见。如果你想git能够追踪到这个空目录,你可以在这个空目录中加一个文件,这个文件一般就是.gitkeep ,它既可以保证这个目录不是空的,也让其他合作伙伴看懂。
.gitignore与keep相反,它是ignore,忽视,它里面可以写一些东西,防止git对某些文件或文件夹进行跟踪。比如,对于python编译生成的.pyc文件,可以在.gitignore 文件中写*.pyc。另外,/表示项目根目录,前面不加.
.gitattributes允许你指定由 git 使用的文件和路径的属性,其中的一个属性是 eol(end of line),用于配置文件的结尾。本文将会深入了解如何配置文件的结尾行,这样的话,即使在不同的机器、操作系统 上都可以使得每个开发者都可以使用相同的值。

Git 文件和存储库大小限制

  • 单项目大小上限为1个G
  • 单文件最大 100M
  • 用户总仓库容量为5个G(总仓库定义为用户名下以及所创建的组织下面的所有项目)
  • 单附件文件大小上限为 100MB
  • 单项目附件总容量 1G

关于 git clone 的方式

参考:https://blog.csdn.net/fastjack/article/details/79757520

一般来讲,从git上下载代码有以下几种方式。

比较容易产生混淆的两种(反正笔者在一段时间之内产生了这种混淆)是HTTPSSSH,看了上面的文章,并在一定的实操基础上,笔者产生了下面的理解方式:

  • 使用https url克隆对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetchpush代码都需要输入账号和密码,这也是https方式的麻烦之处。
  • 而使用SSH url克隆却需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的话,你必须是这个项目的拥有者。否则你是无法添加SSH key的,另外ssh默认是每次fetchpush代码都不需要输入账号和密码,如果你想要每次都输入账号密码才能进行fetchpush也可以另外进行设置。

简单来讲,如果只是下载代码,用https就行,但是如果要经常提交,就要先配公私钥,然后使用ssh

Part.II 实操小技巧

下面列一个表格,记录一些常用的 git 操作:

命令含义
git clone url克隆远程代码到本地
git pull拉取远程最新代码到本地
git add .添加新建的文件
git commit -m "some comments"将更改提交到本地仓库
git push把本地仓库推到远程仓库中
git status查看当前版本库状态
git log查看提交历史记录
git reflog查看你刚刚销毁提交的记录及其哈希值
git checkout -b newbranch ID将ID对应的版本搞到新的分支 newbranch
git log --decorate --onelinegit log 的简洁显示
git branch -a显示该项目本地的所有分支,其中当前分支的前面有*
git checkout -b feature在本地创建一个叫feature 的分支
git checkout master切回主分支
git branch -D feature强制删除 feature 分支,无法恢复
git push -u origin <本地分支名>将本地分支与远程同名分支相关联
git pull origin <远程分支名>:<本地分支名>将远程指定分支 拉取到 本地指定分支上
git pull origin <远程分支名>将远程指定分支 拉取到 本地当前分支上
git push origin <本地分支名>:<远程分支名>将本地当前分支 推送到 远程指定分支上,注意push 本地在前,pull 远程在前
git push origin <本地分支名>将本地当前分支 推送到 与本地当前分支同名的远程分支上
git reset --hard CommitID【本地代码回滚】回滚到CommitID,将CommitID之后提交的commit都去除
git reset --hard HEAD~n【本地代码回滚】将最近n次的提交回滚,换言之,不要最近n次的commit
git reset --hard HEAD^【本地代码回滚】回到上一个版本,就是不要最近一次提交
git reset --hard HEAD^^本地代码回滚】回到上上一个版本
git tag -a Vxx -m "这是备注信息"在本地加标签
git tag打印所有标签
git tag -d Vxx删除本地标签
git push origin Vxx将本地标签发布到远程仓库
git push origin --tags将所有本地标签发布到远程仓库
git push origin --delete Vxx删除远程标签

Chap.I GitHub 上传下载资源

一般来讲,步骤如下:

  • 1.网站上点“+”新建一个库;
  • 2.把此库克隆到本地文件夹中:
cd D:/MyWork/1_Git #将当前文件路径设成 D:/MyWork/1_Git
git clone your_repositories_URL
  • 3.之后就会在相应路径看到自己的项目了,可以进行编辑,添加文件等。
  • 4.编辑完成之后:
git pull					# 多人协同,需要先把别人的拉下来
git add .					# 新建文件要 add 一下
git commit -m 'a' 			# ''中是你的更新说明
git push origin master		# 将本地当前分支 push 到远程 master 分支上

如此,大功告成!

git checkout -b 本地分支名 origin/远程分支名	#将远程git仓库里的指定分支拉取到本地(本地不存在的分支)
# 若上面的指令执行不成功,需要执行 git fetch 才可以执行上面的指令

Chap.II 实现免密 push

下面的操作是针对 Linux 系统的,其他系统操作可类比

首先是步骤

  1. cd ~/.ssh/ 进入 .ssh 所在目录,生成公私钥 ssh-keygen -t rsa
  2. 将公钥 *.pub 文件中的内容加到网站的 SSH Keys中,将公钥和私钥保存在一个合适的位置,比如~/.ssh/文件夹下
  3. 检查/etc/ssh/ssh_config文件中是否有私钥的路径,如果没有加入:IdentityFile ~/.ssh/id_dsa私钥文件名字根据自己的需求更改
  4. 使用ssh -T git@gitxxx.com检查是否可以连上,若出现welcom则公私钥设置成功
  5. git clone的时候注意一定要选择SSH,而不是HTTP(自己在这个点上吃了不小的亏)
    在这里插入图片描述
  6. 简单使用
# 把远程项目克隆到本地
git clone git@gitlab.com:hlgou/mxxxxx.git
# 本地已更改的项目提交到远程
git pull
git add .
git commit -m "the notes"
git push origin main		# 将本地提交到 main 分支,一般用 git push 即可

Chap.III 回退代码版本

回退代码版本,

git reset --hard HEAD^
git reset --hard HEAD~n

Part.III 问题锦集

Chap.I Timed out 或 errno 10054

fatal: unable to access 'https://github.com/xxx/autowrite.git/':
Failed to connect to github.com port 443: Timed out

解决方法:
在项目文件夹的命令行窗口执行下面代码,然后再git commit 或git clone

# 取消http代理
git config --global --unset http.proxy
# 取消https代理 
git config --global --unset https.proxy

取消git本身的https代理,使用自己本机的代理,如果没有的话,其实默认还是用git的

Chap.II Git 访问问题

最近(2021-06-12)访问github,但是访问失败。之前解决访问问题是用ipaddress查询git的ip,然后修改host文件,最后就可以访问了。但是这招好像不管用了。然后在查了下,又找到一个一劳永逸的方法:

之后访问github就不用担心访问不了的问题了。值得注意的是,这样会把之前的hosts文件给覆盖掉,如果想保留最好做下备份。

Chap.III Git 下载东西慢

用浏览器从Git下东西真的超级慢,还有失败的风险,这块就是来解决这个问题的。

原链接:https://blog.csdn.net/qing666888/article/details/79123742

大佬在博文中提到了几个方法,现列表总结如下:

序号方法
1更改host文件
2使用IP Lookup 工具并更改hosts
3从码云导入github项目,然后从码云下载即可。
4开启代理
5没试
6知乎上大佬分享的:用Git Bash的时候将 url 中的github.com 进行替换为github.com.cnpmjs.org即可

上述方法的详细操作如下:

  • 1' 在hosts文件中追加219.76.4.4 github-cloud.s3.amazonaws.com, 将域名指向该IP即可
  • 2' 使用工具并追加hosts
  • St1: https://www.ipaddress.com/ 使用 IP Lookup 工具获得 github.com 和 github.global.ssl.fastly.net 对应的ip,
  • St2: 打开的hosts文件中添加如下格式,IP修改为自己查询到的IP:
192.30.xx.xx github.com
151.101.xx.xx github.global.ssl.fastly.net
  • 3' 从码云导入github项目:点击“头像左边加号”->粘贴要下的项目的url->【导入】->下载zip即可
  • 4' 开启代理,这个不懂,没试
  • 5' 这个也没试。
  • 6' 这个操作很简单,只需改url即可,现举例如下:
git clone https://github.com/Stray-Pig/Cnblogs-Theme-SimpleMemory.git  #正常操作
git clone https://github.com.cnpmjs.org/Stray-Pig/Cnblogs-Theme-SimpleMemory.git  #骚操作

前后对比:
在这里插入图片描述


总结:一般可以用码云那种,但是码云有容量限制(可能是1G),如果超出限制,可以用第六种方法。


有一个网站,可以很快下载github上的代码:

https://d.serctl.com/

将github上zip的地址复制到"下载地址"栏中,点击提交即可,然后就会给你几个下载地址,你点击下载即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪猪头拯救地球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值