保存现场 (经常碰到)
git使用规则:
1. 建议:(可以不遵守)在一个功能没有开发完毕的情况下 ,不要commit(形成版本)
2. 规范:(必须遵守) 如果两个分支处于不同的commit阶段,一个分支在没有commit情况下不能切换到其他分支
场景:
git init
touch a.txt
git add .
git commit -m 'init'
git checkout -b dev
echo 'dev...' >> a.txt
//可以切分支 因为: dev 和 master 指向同一个commit ,dev和 master 共享工作区,切master 也可以看到 dev分支的修改
git add .
git commit -m 'dev 1' //dev产生一个新的版本 ,dev分支 指向于这个新的版本
//可以切换
echo 'dev xxxx' >> a.txt
//不可以切换分支的 因为: dev 和 master 指向不同的commit 阶段,不会共享工作区 ,如果切过去会丢失当前的dev修改操作
/*
方式一:分支前提交
方式二:保存现场: git stash
*/
git stash // 保存没有写完的代码 :保存现场
保存的代码实际是和上一个commit 代码做对比 ,只要新的代码都会被保存起来
git checkout master
...
git checkout dev
git stash pop // 还原未开发完毕的代码 :还原现场,并且删除现场
实验: 保存多个现场
git stash save '着是完成第三个业务的代码'
git stash list 查看现场
/* 栈:先进后出 后进先出
stash@{0}: On dev: 这是第三个业务的代码1
stash@{1}: On dev: 这是完成第三个业务的代码
*/
实验:还原现场方式
git stash pop
/*
1. 如果 pop 后面没有指定还原哪个现场 ,默认还原的就是最新的现场
2. pop stash@{1} 指定stash@{1}还原哪个现场
3. 如果还原了现场 pop ‘会’将保存的现场从列表中删除
*/
git stash apply
/*
1. 如果 apply 后面没有指定还原哪个现场 ,默认还原的就是最新的现场
2. apllay stash@{1} 指定stash@{1}还原哪个现场
3. 如果还原了现场 apply ’不会‘将保存的现场从列表中删除
*/
实验:还原现场产生冲突
vi a.txt --> 修改第三行
git stash --> 保存现场(修改的第三行)
vi a.txt --> 修改第三行
git add .
git commit -m 'xxx'
//还原现场
git stash apply
/*
自动合并 a.txt
冲突(内容):合并冲突于 a.txt
*/
//解决冲突vi add commit
vi a.txt
git add .
git commit -m '解决还原现场冲突 '
实验:删除现场
git stash drop stash@{5}
责任追责
git blame a.txt 查看文件的 版本sha1值 提交者姓名 和提交时间
/*
79389a61 (xuanqiyan 2020-04-21 14:18:00 +0800 1) 1111
f3a72402 (xuanqiyan 2020-04-21 14:21:33 +0800 2) 2222
f3a72402 (xuanqiyan 2020-04-21 14:21:33 +0800 3)
f3a72402 (xuanqiyan 2020-04-21 14:21:33 +0800 4) dsadsa
f3a72402 (xuanqiyan 2020-04-21 14:21:33 +0800 5) dsad
f3a72402 (xuanqiyan 2020-04-21 14:21:33 +0800 6) sadsa
f3a72402 (xuanqiyan 2020-04-21 14:21:33 +0800 7) dsa
2d1f98c6 (xuanqiyan 2020-04-21 15:08:05 +0800 8) 冲突已经解决
*/
------------------------git团队开发---------------------------------
github
注册:http://github.com--> sing up(注册) --> 进入注册页面
名字
邮箱(真实存在的 163 QQ)
密码
create acount
邮箱激活 才算真正注册成功
sing in 登陆
实验: 在github 创建一个仓库
方式一: 勾选readme 文件
方式二: 不勾选readme 文件 (推荐) 更加灵活