Git配置
# git 的用法和配置
# 一、git 的用法
感悟:远程仓库并不能合并分支,需要
git fetch
拉取到本地仓库,然后在本地使用git switch
或者git checkout
,转换分支,然后在本地进行分支的合并。==故因此,通常需要把分支在本地合并,然后在 push 到远程仓库==
# 1. git branch 的常见用法
- git branch -v ——查看本地分支的信息
- git branch -vv ——查看更详细,包含了本地分支与远程分支之间的跟踪关系信息
- git branch -r ——查看远程分支
- git brach -a ——查看所有的分支
# 2. git pull 感悟
- git pull 功能:从远程仓库拉取分支并合并到当前的分支下,包括两部分:git fetch 和 git merge。故其功能比 merge 要强
- git pull 主要是本地仓库和远程仓库保持同步,获取最新的代码,以便与能够 git push
git pull origin <远程分支名>:<本地分支名>
# 3. git push
- git push 主要用于把本地仓库的代码,提交到远程仓库中,
git push origin <本地分支名>:<远程分支名>
- 有两种情况: 1. 如果远程仓库中有本地的 master 分支,且是同步的(意思就是本地仓库的作用域要大于远程仓库),那么则会被添加到远程仓库的 master 分支下(举例是 master)。如果是没有同步,也可以添加
--force
来使用,强制 push,但是会造成很多后果。 2. 如果远程仓库中没有本地的 dev 分支,则会在远程仓库中新建一个 dev 分支(举例) - git push 到远程仓库的分支,这样表示:orgin/master、origin/dev
# 4. git remote
- git remote -v 可以查看本地仓库连接了几个远程仓库
git remote add <remote_name> <remote_url>
, remote_url 可以是 ssh,也可以是 https
# 5. git merge
- git merge
可以把 branch 分支合并到当前分支上
# 二、git 的配置
# 1.连接 gitte 和 github
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "pohongying520@qq.com
添加密钥。ssh-add -K ~/.ssh/id_rsa_github
将密钥信息存储到 keychain 中,永久保存;如果使用ssh-add ~/.ssh/id_rsa_github
只会将信息存储至 session 中,关机重启后自动清除,这时候连接ssh-T git@github.com
则会报Permission denied
的错误。如果存有多个账户的密钥,则要创建 config 文件:
# Default gitHub user Self Host github HostName ssh.github.com User git IdentityFile ~/.ssh/id_rsa_github # gitee Host gitee HostName gitee.com User git Port 22 IdentityFile ~/.ssh/id_rsa_gitee
1
2
3
4
5
6
7
8
9
10
11
12
13有时候连不上,可能是因为域名污染的问题,无法通过域名解析得到正确的 ip 地址,这时候我们往往需要更改 host 文件
sudo vi /etc/hosts
, 把 github 相关的域名和对应的 IP 绑定,最后刷新 dns 缓存sudo killall -HUP mDNSResponder
。idea 配置 github,没有项目可以 share ……project,有项目 git push。使用 gitee 要安装插件
- git 命令行,邮箱无实际含义,只用来做标识。
- 服了,ssh 连接太多,导致登录不上了。github 需要 git 设置代理,gitee 需要关掉代理,我弄了一下午,差点没把我整疯,也好,希望给以后长点教训。ssh -T git@ 用来测试 ssh 连接,ssh -V git@ 用来 debug,@后面通常是 ssh 地址,也可以是 htpps 地址,不过要输入密码,如果 ssh 设置密匙有问题的话,可以考虑这个 https。
- git remote add [自定义远程项目名] [项目地址 可以 ssh 和 https],git push [远程项目名] [当前分支名称]:[远程分支]
看来以后暂时只能提交到 gitee 上了,github 用来 git clone 吧,不过 git remote add +https 网络好兴许可以提交,目前就是 GitHub 的 ssh 有点问题,具体原因不清楚,也就是多输输密码的事,反正我也还记得。(1.25 睡觉)
编辑 (opens new window)