git
git三个区域
文件的4种状态
- 未跟踪(新建的文件,没有被git管理)
- 已暂存(位置于暂存区,并git管理)
- 已提交(位置于本地仓库,已提交的文件会形成快照)
- 已修改(已经暂存)
完整的git管理
1.git init 初始化本地仓库
2.在工作区编写代码
3.告诉git来管理所有的代码
- git add . (最常用,表示当前路径)
- git add * (表示当前所有文件)
- 把工作目录中所有文件都放到暂存
- 解决为跟踪文件的命令
- git add -A
4.设置用户信息
写上--global则表示全局通用(当前计算机),不写则作用于局部(当前文件夹)
- git config --global 配置用户信息
- git config --global user.name
- git config --global user.email
局部设置时,配置信息在 .git/config文件中,全局设置时,会在家目录下生成.gitconfig文件来存储配置信息
5.告诉git在数据库中存储所有修改(注意,一定要设置用户信息)
- git commit 把暂存区的文件提交到本地仓库
- git commit -m (m后面放备注)
- 交到本地仓库
6.恢复到某一个版本
- git reset --hard SHA1值(标识字符串)
其他命令
- git status 查看修改状态,红色字表示未添加修改、绿色字表示未提交修改
- git log 查看日志,可以获取库中修改详细信息,可以拿到SHA1值向后回退
- git reflog 查看完整操作日志,在向前回退时可以获取被删除的SHA1短值
修改冲突
- 情况:2个程序员clone同一个services仓库,修改后commit后push上传,如果修改了同一个文件,会提示后执行操作的程序员先pull回来
- 说明:pull回来后会将冲突部分提示,需要处理后重新push;公司开发项目应该避免不同人员操作同一个文件;开源项目中则只能处理冲突后重新push
git checkout -- 回滚
git log 查看本地仓库提交记录
团队开发使用远程仓库
leader 操作
- leader创建组,在成员管理中添加员工(只是属于组,但是未明确职责)
- 新建仓库,在仓库中创建,不同于个人仓库
- 创建分支,在master中进入管理分支,来进行相关操作;可以让master分支改成只读状态(保护状态下管理员可以push),然后把newBranch分支设为默认分支(下面都是操作默认分支)
- 派发项目,在组织设置中,添加组织成员(明确组员职责,要设定权限)
- 扩展:pull request申请合并(拥有本地git服务器GitLab的可以直接申请merge)
程序员 操作
- clone仓库(克隆的是默认分支newBranch)
- 先创建一个自己的分支,然后在自己的分支上修改,测试可以了再merge合并
- commit提交到本地仓库
- 最后push同步到服务器中git push [地址|origin] [分支名]
- 再次操作是git pull
- 注意:如果多人合作会有冲突,尽量避免操作同一个文件,或把不需要提交的文件存在ignore(忽视)中;如果冲突会警告,并要求pull,修改后重新push