1. Git使用
安装git客户
git客户客户端:
TortoiseGit安装详解:https://www.cnblogs.com/xinlj/p/5978730.html
命令行:Git Bash Here
插件: android studio|eclispe
2.git结构:
工作区 : 本地操作的代码
暂存区(add) : 执行add 以后加入暂缓区
本地库(commit): 存储每一个版本,在本地,比svn的优点
3. 设置
1.git init :初始化本地库,创建 .git文件
2. 设置签名:用于区分不同人提交代码,和代码托管账号、密码没有任何关系
本地有效:
git config user.name denganzhi
git config user.email [email protected]
保存路径: cat ./git/config
全局有效:
git config --global user.name denganzhi
git config --global user.email [email protected]
保存路径: cat ~/.gitconfig
4. 使用
git status : 查看本地代码状态 [ 红色:新建文件、已修改文件 ]
git add * : 红色边绿色 【 后悔了撤回来git rm --cached bb.txt 】
git commit aa.txt -m "第一次提交"
5. Git版本控制回退
git log:
git log --oneline:git log多屏显示,用oneline控制
git reflog: {} 显示移动到当前版本想要移动次数
git操作本质:
git管理每一个版本有一个指针, 可以基于Head指针 前进后退,切换对应指针即可
git reset --hard fbf1e13【索引值】
用途: 删除文件找回
参数含义:
--soft:移动本地库HEAD指针
--mixed: 移动本地库,重置暂存区
--hard: 移动本地库,重置暂存区,工作区
git diff aa.txt : 工作区和 本地区比较
6. Git分支管理:
master分支默认是
git branch : 查看本地分支
git branch haiwaikaadas: 创建分支
git checkout haiwaikaadas: 切换分支
分支合并:
git checkout master :切换Master分支
git merge haiwaikaadas: haiwaikaadas分支合并到Master
合并分支冲突:
冲突产生条件:
分支A修改了 内容A部分,master分支A提交
分支B修改了 内容A部分,branchA分支B提交
branchA合并到master分支上
git merge以后,产生冲突文件,编辑冲突文件add,然后commit即可
7. Hash算法类型:
md5: 输出结果是16个字节
sha1: 输出结果20个字节
crc32: 输出结果4个字节
数据一点不一样,Hash值不一样
SVN原理:每一个版本保存增量数据
Git原理: 给每一个版本拍一个快照,每一个文件有hash,比较,指针指向差异文件
widnows密码保存路径:
控制面板\用户帐户\凭据管理器,删除以后,提交代码要重新输入gitlab账户密码
9. Git远程协作
git remote add origin https://github.com/dreamsdeng110/githubinfo.git: 添加别名给 origin
got remote -v
git push -u origin master: 提交内容
git clone https://github.com/dreamsdeng110/githubinfo.git:下载内容
git pull origin master: 从服务器拉取内容
上面的pull相当于下面的:
git fetch origin/master
git merge origin/master
远程库冲突:
A 提交修改了
B 修改了同样内容
B 首先 pull 拉取冲突内容,冲突文件产生,编辑解决冲突
B git add * :标记为解决,add
B git commit -m "解决冲突"
B git pull origin master
B git push origin master
同一个团队合作,邀请其他成员加入
10. 跨团队协作基于github
A用户首先 访问主用户github项目页面 fork 一份代码,拉取到本地, 修改代码提交,有自己的分支了在自己的库中
然后Pull request,提交请求
主用户: 在线审核代码
在线合并代码
11. 基于ssh登录github
cd ~ :进入家目录
ssh-keygen -t rsa -C [email protected]: 生产公钥
cd .ssh/
cat id_rsa.pub 拷贝内容公钥内容,把它粘贴到github上,可能出现问题,换行在粘贴
git remote add origin_ssh [email protected]:dreamsdeng110/githubinfo.git: 配置ssh以后,把公钥添加到origin_ssh上
git remote -v : 查看变量
git push origin_ssh master:推送内容通过公钥
12.Git分支理论使用:
B程序员分支B,在B分支上修改,推送到远程
A项目经理,拉取B 分支, 切换到B分支 ,
审核代码,合并到master分支
开发中,应该把Master分支拉下来以后,在本地创建一个用于开发的分支,在开发的时候动开发分支就行了,然后把它合并到master分支,
太麻烦了这样,实际开发中直接操作Master分支即可
13. Centos7安装 安装GitLib
cat /etc/sysconfig/network-scripts/ifcfg-ens33
service network restart :保证 centos能够上网
GitLib官网:https://about.gitlab.com/
https://about.gitlab.com/install/#centos-7: centos-7官网安装路径
gitlab-ce: 社区版
gitlab-ee: 企业版
安装以后启动服务,IP:155端口即可访问github类似网页