续
2.15 删除文件
$ rm testDel.txt删除掉工作区的testDel.txt文件,
1)这时可以通过git checkout -- testDel.txt从版本库恢复该文件到工作区
2)确实要删除它, 可以使用 git rm testDel.txt, 然后提交git commit -m 'info'
3) 如果删除了,并且提交了,再用checkout -- filename就找不到文件了,
只能通过版本号还原 git reset --hard 0581460, 再 git checkout -- filename, 同步到工作区
2.16 远程仓库 操作
1)创建ssh key
$ ssh-keygen -t -rsa -C "myemail@email.com"
2) 登陆github账号
将id_rsa.pub文件的内容复制到SSH keys页面的相应位置, 然后Add keys
2.17 添加远程库
1) 在github上创建一个空的仓库work
将本地的work仓库和远程的work仓库关联 git remote add testwork git@github.com:yilifighter/work.git
将本地仓库的master版本推送到git git push -u testwork master
(第一次加-u起关联作用,以后不需要)简化为
git push testwork master
git push -fu testwork master可以强制覆盖远程的master分支
2.18 远程克隆
1)使用ssh支持的git协议
git clone git@github.com:yilifighter/ImgServerPro.git
2) 使用https协议
git clone https://github.com/yilifighter/second_github_project
3) 指定地址 克隆
git clone git@github.com:yilifighter/second_github_project.git 'c:worksecond_github_project'
指定的目录应为空
2.19 分支
1)创建分支git branch dev
2) 检出(切换)分支git checkout dev
3)创建并检出分支 git checkout -b dev
4)查看分支 git branch
在新分支上创建文件newBranchFile.txt,并提交
切换分支 git checkout master
(查看当前分支master, newBranchFile.txt文件不在)
5)合并分支 git merge dev
该命令合并指定分支(dev)到当前分支(master)
(再查看当前分支文件, newBranchFile出现)
6)删除分支 git branch -d dev
(dev当前分支名)
2.20 解决冲突
1)创建新的分支branch2,修改newBranchFile.txt文件并提交
2) 切换到master分支,再次修改newBranchFile.txt文件并提交
此时合并分支,出现冲突
3)查看冲突的文件
git status
4) 查看合并情况
git log --graph --pretty=oneline --abbrev-commit
5) 删除分支
2.21 分支管理
Fast forward 模式在删除分支后会丢失分支信息
--no-ff 禁用Fast forward模式,会在提交时生成一个commit,则可以看到分支信息
查看日志
master分支是稳定版本,一般用来发布新版本, 平时不在上面干活,
小伙伴们平时都在dev分支上干活,都有自己的分支, 再合并到dev
2.22 Bug分支
当在dev分支上进行开发时, 如果需要修改master分支上的bug,怎么办?
直接切换到master分支上,不行
而dev一时半会开发不完,不能提交,合并
如上提示中所说, 需要stash保存当前工作现场
此时用git status查看,当前分支是干净的,就像回到刚创建并切换分支的状态
然后创建并切换到bug-1分支,解决bug并提交
合并bug-1分支,并删除之
用git stash list查看工作现场
恢复现场,并删除现场
方式一:
git stash apply; git stash drop.
方式二:
git stash pop
可以通过git stash apply stash@{num} 来恢复指定的stash
删除现场