0.如何解决国内无法访问github
GitHub 是最大的同性交友网站(通过 Git 进行版本控制的软件源代码托管服务平台),许多优秀的项目代码均可以从 GitHub 上面获取,但是由于一些不可抗力因素导致国内访问 GitHub 有时候较为困难,具体表现是无法连接或者页面加载缓慢。许多位于国内的服务器使用 wget 或者类似命令从 GitHub 上拉取代码时很大概率会出现无法连接或者拒绝连接的错误,这类错误是由于 DNS 服务器解析了错误的 GitHub 的 IP 地址所导致的,下面教大家如何解决这个问题。
在服务器的 Hosts 文件中加入正确的目标服务器 IP 即可解决
查询IP地址
可以自行到这个网址输入对应域名查找 IP
两个域名
- raw.githubusercontent.com
- github.com
将查询结果加入到
/etc/hosts中1
2
3
4
5vim /etc/hosts
185.199.108.133 raw.githubusercontent.com
20.205.243.166 github.com
#插入到文件末尾即可
1.添加SSH KEY
按如下命令来生成 sshkey:
1
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key
查看
1
2cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....值得一提的是,一个公钥可以同时添加到Github或者gitee上面,不需要多个key
在Github或者Gitee上添加公钥
1
2
3Gitee:复制生成后的 ssh key,点击头像--设置--SSH公钥(如图所示)添加生成的 public key
Github:登录到GitHub,选择settings ,选择Add SSH key,把.pub的内容复制到里面即可。添加后,在终端(Terminal)中输入
1
2
3ssh -T git@gitee.com
ssh -T git@github.com首次使用需要确认并添加主机到本机SSH可信列表。若返回
1
Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.
则证明添加成功。
2.git clone
1 | 用法:git clone [url] |
3.git add
该命令可以将一个文件或者文件夹添加至stage(暂存区)
1 | 用法:git add [file] or [floder] |
一下命令可以将多个文件添加至stage(暂存区)。
1 | git add * |
4.git remote
你可以通过该命令将本地的代码库连接到远程服务器
1 | git remote add [variable name] [Remote Server Link] |
值得注意的是:同一个本地repo,可以关联到多个远程repo,只需要多次添加就可以了。
eg:有一个本地仓库,我希望同时同步到github和gitee上去,此时我们可以按如下三步
先删除已关联的名为origin的远程库
1
git remote rm origin
先后关联GitHub的远程库
1
2git remote add github git@github.com:loveXMTX/demo.git
git remote add gitee git@gitee.com:loveXMTX/demo.git列出详细信息,在每一个名字后面列出其远程url
1
git remote -v
5.git commit
该命令可以在版本历史记录中永久记录文件
1 | git commit -m “[ Type in the commit message]” |
6.git push& git pull
将主分支上提交的变更发送到远程代码库
1 | 用法:git push [variable name] master |
将所有分支发送到远程代码库
1 | 用法:git push –all [variable name] |
设置远程分支
1 | #origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。 |
该命令将获取远程服务器上的变更,并合并到你的工作目录
1 | 用法:git pull [Repository Link] |
7. git config
在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:
- 仓库级别 local 【优先级最高】
git 仓库级别对应的配置文件是当前仓库下的
.git/config在当前目录下.git目录默认是隐藏的,所以在文件管理器中我们要打开显示以藏文件)
2.用户级别 global【优先级次之】
git 用户级别对应的配置文件是用户宿主目录下的
~/.gitconfig3.系统级别 system【优先级最低】
git系统级别对应的配置文件是git安装目录下的
/etc/gitconfig
那么config配置文件中具体有什么东西呢?
你可以通过git config -l来查看
常用的命令
git config -e 编辑配置文件
1
2
3# git config --local -e 编辑仓库级别配置文件
# git config --global -e 编辑用户级别配置文件
# git config --system -e 编辑系统级别配置文件git config 添加配置项目
1
2# git config --global user.email “you@example.com”
# git config --global user.name “Your Name”
8.git branch
创建分支
1
git branch test #test为分支名
切换分支
1
git checkout test
将新分支推送到github
1
git push origin [branch name]
查看分支
1
2
3
4
5
6
7
8#查看本地分支
git branch
#查看远程分支
git branch -r
#查看所有分支
git branch -a删除分支
1
2
3
4
5#删除本地分支
git branch -d [branch name]
#删除github远程分支,分支名前的冒号代表删除。
git push origin :[branch name]
回退到某个版本
查看之前提交的记录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15git log
commit 7efbc0bb4f42bc837027fe929f05d4148aff354e (HEAD -> master, origin/hexo)
Merge: 8a3b11a 9113919
Author: XXX
Date: XXX
commit信息(你自己注释的)
commit 8a3b11a41b4c0c19fe6cf0a8a7443c86a43e8e5e
Author: XXX
Date: XXX
Add YuanMa
...回到指定版本:
1
git reset --hard [你需要选择的版本信息]比如:7efbc0bb4f42bc837027fe929f05d4148aff354e
强制提交
1
2
3
4git push -f origin master
#如果提交不了,你可能需要先merge一下远程的分支
git pull [repo的别名] [远程的branch名称]
将本地的分支推送到远程的非master分支
在本地repo根目录下初始化
1
git init
添加远程repo
1
git remoote add [repo别名--你自己取] [远程repo url]
添加到工作区
1
git add . #或者选择你需要添加的文件
提交
1
git commit -m "你自己的注视,方便你自己记忆提交版本,以便你以后可能回退"
推送
1
2
3
4
5#推送到master分支
git push [repo别名] master
#推送到非master分支
git push [repo别名] master:[远程分支名]



