本地库和远程库
代码托管中心
- 代码托管中心用来维护远程库
- 局域网下搭建的服务器:GitLab
- 外网下的服务器:GitHub,码云
本地库基本操作
本地库初始化
git init
- 可以通过 ls -lA 查看.git/下的子目录与文件
设置签名
- 用来区分不同开发人员身份,与登陆到远程库的用户名和密码作用不同
- 项目级别:git config user.name=tom_xm user.email=1600639146@qq.com,查看使用cat .git
- 系统级别:git config –global user.name=tom_global user.email=1600639146@qq.com,查看步骤:定位到用户夹 cd ~ => 查看.gitconfig文件 cat .gitconfig
基本操作
- 查看
//查看当前的状态,没有被追踪的文件颜色为红色,即表明目前在工作区中;在暂存区中的文件显示为绿色
git status
- 添加
//将文件添加到暂存区中,此时使用git status文件显示为绿色
git add <filename>
- 撤销
//撤销add操作,将文件状态回退到工作区
git rm --cache <filename>
- 提交
//将文件从暂存区提交到本地仓库
git commit -m "<提交说明>" <filename>
- 查看历史记录
- git log:详细查看提交的历史记录

- git log –pretty=oneline:简略查看提交的历史记录,hash值很长,每条记录一行

- git log –oneline:与git log –pretty=oneline的区别是其hash值比较短

- git reflog:最理想的方式,HEAD@{<回退步数>}

- 回退/前进历史版本
- 基于索引值操作
git reset --hard <局部索引值>
- 使用^符号:只能后退
//几个^表示后退几步
git reset --hard HEAD^
- 使用~符号:只能后退
//n表示后退几步
git reset --hard HEAD~n
- hard、mixed、soft对比
//本地库向前移动了一个单位,此时 git status 颜色为绿色,看起来是暂存区向后移动了一个单位
git reset --soft <局部索引值>
//本地库以及暂存区向前移动了一个单位,此时 git status 颜色为红色,看起来是工作区向后移动了一个单位
git reset --mixed <局部索引值>
//本地库、暂存区以及工作区向前移动了一个单位
git reset --hard <局部索引值>
//使用mixed或soft移动后回到当前指针指向的位置
git reset --hard HEAD
- 永久删除文件并回退
rm <filename>
使用上述命令删除后,也可以通过 git reset –hard <局部索引值> 找回
- 添加到暂存区的文件删除后找回
rm <filename>
使用上述命令删除后,也可以通过 git reset –hard HEAD 找回,使版本指针指向当前版本
- 删除文件后找回总结 前提:本地库之前有保存文件版本 文件被提交到本地库:移动指针指向的历史记录
git reset --hard <局部索引值>
文件没有被提交到本地库:移动指针指向当前指向的历史版本
git reset --hard HEAD
- 比较文件差异
//比较工作区与暂存区中文件的差异
git diff <filename>
//比较工作区与历史版本的差异
git diff <历史版本号> <filename>
//比较工作区中的所有文件
git diff
- 分支操作
- 创建分支
git branch <分支名>
- 查看分支
git branch -v
- 切换分支
git branch <分支名>
- 合并分支
git merge <分支名>
- 合并的过程中冲突的解决
两个或以上的分支对同一文件的相同位置都进行了编辑

- 先将将git自己编辑文件时的内容删除,然后编辑文件改到满意为止,重新走一遍add、commit流程
git add fenzhi.txt
git commit -m "说明"
远程库基本操作
- 在本地创建远程库地址别名
//远程库地址为origin
git remote add origin <远程库地址>
- 向远程库推送内容
git push <远程仓库地址/别名> <分支名>
git push origin master
- 克隆操作
git clone <远程仓库地址>
- 完整的远程库下载到本地
- 创建origin远程地址别名
- 初始化本地仓库别名
团队协作

- 由项目主管创建项目,并邀请成员加入项目
git init
git add .
git commit -m "说明"
git remote add origin <远程仓库地址>
git push origin master
- 团队成员克隆项目到本地
git clone <远程仓库地址>
git add .
git commit -m "说明"
git push
- 合并远程分支
git add .
git commit -m "提交说明"
git fetch origin <分支名>
git merge origin/<分支名>
//以上两种操作等价于git pull origin <分支名>
- 若产生冲突,进入冲突文件进行更改
- 最后走一遍提交流程
git add .
git commit -m "提交说明"
git push
跨团队协作

- 以合伙人身份点击fork

- 将fork后的项目克隆到本地
git clone <克隆后的远程仓库地址>
- 提交操作
git add .
git commit -m "提交说明"
git push
- 点击Pull request,new pull request

- 点击create pull request

- 填写标题及内容

- 提交成功后的状态

- 主管查看提交

- 主管在这个界面可以聊天、点击Files changes查看团队外成员提交内容并可以选是否合并
