github#
配置免密登录#
- URL方式
默认的原始地址: git remote add origin https://github.com/zhuchangwu/CIOC.git git push -u origin master 修改: git remote add origin https://用户名:密码@github.com/zhuchangwu/CIOC.git git push -u origin master
- SSH
执行 ssh-keygen 命令: 在本地生成公钥个私钥 默认会生成在 ~/.ssh目录下面 id_rsa.pub 是公钥 id_rsa 是私钥
我们需要做的就是拷贝公钥的内容配置进github中,再从github中获取到下面的信息,回到本地库进行认证
git remote add origin git@github.com:zhuchangwu/CIOC.git git push -u origin master
从github上克隆项目#
git clone [ssh地址]
项目被克隆到本地后,如果这个项目存在多个分支,我们同样可以使用git checkout [分支名]
切换到不同的分支下面
新建仓库#
在github上新创建仓库后,她会给我们一些提示信息,比如说,如何初始化本地库,如何将本地库和远程库管理起来,如何往远程库推送代码,如下图
上面有一行命令是git remote add origin git#githubXXX.git
,什么意思呢? 这其实是给后面那一长串地址取别名叫 origin, 从这以后命令中,origin==后面那一长串
往github上推送代码#
将本地库中的代码推送上去
git push -u origin master git push origin master // -u可以省写
从github上面拉取代码#
拉取到工作区
git pull origin master
从github拉取的本地库#
git fetch origin 分支
实用的rebase
(变基)#
- 实用情景1: 小王为了开发在线聊天功能,前前后后往本地库里面提交了10次,为了方面别人查看,于是小王使用下面的命令合并提交记录
// 从最新的commit记录往下数,合并n条记录(包含n) git rebase -i HEAD~n // 从最新的commit记录往下合并,直到md5为指定值的那条commit(包含这条commit) git rebase -i md5值
- 目的是将下面的存在分支的提交记录,整合成没有分支的提交记录
整合前
整合后
git checkout dev git rebase master git checkout master git merge dev // 查看 git log --graph
- 情景三: 当本地库对A功能新添加了一些代码,但是在开始新的开发前需要从远程的github中拉取一些其他人新增的关于A功能的代码时,两者合并不仅仅会产生冲突,还存在分支, 使用rebase解决
git fetch origin dev git rebase origin/dev
配置文件#
git中存在三个配置文件: 优先级: 当前项目的配置文件优先级最高,最次是系统的配置文件
第一个: 位于 项目/.git/config#
它里面的配置信息仅对当前项目有效,比如我们前面给ssh串取别名叫origin,就是对当前项目有效
git config --local user.name 'XXX' git config --local user.email 'XXX'
第二个: 位于 用户目录/.gitconfig#
git config --global user.name 'XXX' git config --global user.email 'XXX'
第三个: 系统的配置文件#
linux: /etc/.gitconf
acer : C:\Users\acer\.gitconf
git的忽略文件#
凡是和.git目录在同一级目录下面的文件都会被git检测并管理起来,被管理起来就意味着这些文件终究会被推送到远程库,但是有一些数据文件被推送出去会产生安全性的问题,如果我们不想让这些文件被git管理就可以使用git的忽略文件
创建.gitignore结尾的文件,git会读取这里面的文件,并且会忽略这里面配置的文件
.gitignore files/ *.txt
github搜索 gitignore有惊喜
最后再附上一张总结图: