1、Git环境配置
设置 Git 全局用户名:
git config --global user.name "xxx"
设置 Git 全局用户邮箱:git config --global user.email "yyy"
查看配置:git config -l
查看全局配置:git config --global --list
① 配置完会在C:\Users\Administrator目录下生成.gitconfig配置文件,里面记录着刚才的配置信息
② 这两个配置的作用是,以后提交代码的时候会记录下来是谁提交的
③ 当然这个用户名和邮箱不一定但最好是要与自己的github账号一样,第一是为了便于区分是谁提交的,谁谁提交一看便知,不至于说看到个abc用户提交了问半天才知道是谁,第二是当我们把代码提交到远程仓库的时候,会根据提交者的邮箱去关联github的用户
2、配置 SSH KEYS
生成 SSH 密钥对:
ssh-keygen -t rsa
查看计算机上 SSH 密钥的公钥内容:cat ~/.ssh/id_rsa.pub
(然后将公钥配置在github账号上,下次 github 就可以直接链接我们)
保存 github 的公钥:ssh -T git@github.com
(下次我们就可以直接连接 github)
① ssh-keygen 是 SSH 密钥生成器程序的名称。-t rsa 是一个选项,指定了要生成的密钥类型为 RSA
② RSA 密钥对包括两个部分:私钥和公钥。私钥通常保存在你的计算机上,而公钥则被传输给其他人或服务器。这些密钥对被用来在网络上进行安全的身份验证和加密通信
③ ssh-keygen 运行完会在C:\Users\当前用户\.ssh文件夹中看到id_rsa文件(私钥)和id_rsa.pub文件(公钥),保存完 github 的公钥会在 .ssh\known_hosts 中看到 github 的记录
总结
1、未保存对方公钥时,ssh客户端会询问我们“这是你想要链接的那个吗”?防止链接到坏人,导致我们的主机被入侵
2、保存对方公钥的时候,有时可能需要输入密码,确保对方是愿意被我们链接的(例如虚拟机),当然有些也是不用的(例如github)
3、保存了对方的公钥后,ssh客户端在链接对方的时候会拿着我们保存的公钥进行验证,就不再一直询问我们这是你想要连的吗这是你想要连的吗…
3、使用
3.1、仓库、分支相关
创建本地仓库:
git init
查看本地仓库分支:git branch
创建本地仓库分支:git checkout -b 新分支
切换本地仓库分支:git checkout 分支
重命名本地仓库(别的)分支:git branch -m 旧分支名 新分支名
重命名本地仓库(当前的)分支:git branch -m 新分支名
删除本地仓库分支:git branch -d 分支
本地仓库连接远程仓库(在本地将它叫做origin):git remote add origin 远程仓库连接
查看本地仓库连接了哪些远程仓库:git remote -v
本地仓库解绑远程仓库:git remote remove 远程仓库(使用本地的命名,例如origin)
将其他分支合并入当前分支:git merge 别的分支
放弃合并:git merge --abort
查看远程仓库有什么分支:git remote show
3.2、项目相关
克隆项目(远程仓库的主分支):
git clone xxx
克隆项目(远程仓库的指定分支):git clone -b 指定分支 xxx
提交代码到暂存区:git add 文件
(提交到暂存区时,本地仓库就已经更新了)
提交所有代码到暂存区:git add -A
/git add .
提交:git commit -m "描述"
(对修改进行分类提交,产生相应的镜像)
提交记录:git log
(commit过的才能被看到)
提交记录(详细一点的):git log --stat
恢复工作区的文件:git checkout 工作区修改过的文件
(恢复为当前仓库的数据)
撤回提交(软重置+回滚1次):git reset --soft HEAD^
撤回提交(软重置+回滚1次):git reset --soft HEAD~数字
撤回提交(混合重置+回滚1次):git reset --mixed HEAD^
撤回提交(混合重置+回滚1次):git reset --mixed HEAD~数字
撤回提交(硬重置+回滚1次):git reset --hard HEAD^
撤回提交(硬重置+回滚1次):git reset --hard HEAD~数字
推送到远程仓库(未建立关联,远程还没有分支 / 远程已有分支且本地分支名=远程分支名):git push -u origin 本地分支
推送到远程仓库(未建立关联,远程已有分支且本地分支名≠远程分支名):git push -u origin 本地分支:远程分支
推送到远程仓库(已经建立关联):git push
从远程仓库拉取(还未建立关联):git pull origin 远程分支
从远程仓库拉取(已经建立关联):git pull
单独地为本地分支和远程分支建立关联:git branch --set-upstream-to=origin/远程分支 本地分支
① 只要add了,仓库的数据就改了
② 查看当前仓库的数据:工作区的无色 / 仓库的无色+绿色;查看上次仓库的数据:仓库的无色+红色
③ 暂存区可以关联当前仓库的数据和上次仓库的数据,工作区只能关联当前仓库的数据
④ 软重置不会修改仓库的数据,会保留暂存区、工作区的更改
⑤ 混合重置会将仓库的数据修改成上次的数据(即commit中的无色+红色部分),会保留工作区的更改
⑥ 硬重置会将仓库的数据修改成上次的数据(即commit中的无色+红色部分),不会保留工作区的更改
3.3、其他
查看文件夹状态:
git status
4、开源项目渠道
① 掘金
② GitHub Trending
③ GitHub 521xueweihan / HelloGitHub
④ GitHub ruanyf / weekly
⑤ 阿里妈妈前端快爆
5、github找资源小技巧
① 找百科大全:awesome xxx
② 找例子:xxx sample
③ 空项目架子:xxx starter / xxx boilerplate
④ 找教程:xxx tutorial