四、git实战演练
一、暂存区提交与撤销
比较工作区和仓库的不同
修改文件后直接commit(只在工作区修改,没有commit到git仓库)
1 #执行以下命令,比较工作区和仓库的不同 2 git diff HEAD -- [文件名]
1 差异比较说明: 2 '---':表示变动前的文件 3 '+++':表示变动后的文件 4 变动的位置用两个@符号作为开始和结束 5 '-0,0':减号表示第一个文件,第一个0表示第0行,第二个0表示连续0行; 6 '+1,2':加号表示第二个文件,第一个1表示第1行,第二个2表示连续2行;
删除暂存区文件
1 git reset HEAD [文件名]
二、版本回退
1、查看版本日志(方法一)
1 git log
2、查看版本日志(方法二,查看所有版本信息)
1 git reflog
3、查看版本日志(方法三,简洁版)
1 git log --pretty=oneline
4、版本回退(适用回退少数量版本)
1 #回到上一个版本 2 git reset --hard HEAD^ 3 4 #回到上两个版本 5 git reset --hard HEAD^^ 6 7 #回到指定数量版本前(eg:回到3个版本前) 8 git reset --hard HEAD~3
5、回到指定版本
1 git reset --hard [唯一id]
三、版本删除
1 #取消工作区删除文件(git仓库没有删除) 2 git restore [工作区删除的文件名] 3 4 #从版本库拉回 5 git checkout [工作区删除的文件名] 6 7 #从版本库删除 8 git rm [版本库中要删除的文件名]
四、远程仓库
1 #查看本地仓库提交的内容 2 git ls-files 3 4 #添加远程仓库 5 git remote add [远程仓库别名:默认origin] [远程仓库地址url] 6 #eg:git remote add origin https://github.com/... 7 8 #推送到远程仓库,之后使用git pull拉取代码、git push推送代码 9 git push -u origin master
使用SSH地址
生成密钥
1 ssh-keygen -t rsa -C "github/gitee账户邮箱"
密钥地址:
1 /c/Usres/Administrator/.ssh/id_rsa
在github或者gitee设置中找到SSH设置 ---> 新建SSH,添加公钥(不要加密钥)
其他同https
五、本地分支操作
1 #查看本地所有分支 2 git branch 3 4 #新建一个分支(但仍然留在当前分支) 5 git branch [branch-name] 6 7 #切换到指定分支 8 git checkout [branch-name] 9 10 #新建分支并切换(组合写法) 11 git checkout -b [branch-name] 12 13 #删除指定分支 14 git branch -d [branch-name] 15 16 #合并指定分支到当前分支(当前分支为master,此操作在master分支上进行) 17 git merge [branch] 18 19 #重命名分支:如果newbranch名字已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名 20 git branch -m|-M [oldbranch-name] [newbranch-name]
六、远程分支操作
1 #查看远程所有分支 2 git branch -r 3 4 #查看本地和远程所有分支 5 git branch -a 6 7 #拉取远程仓库的变化,并与本地分支合并(建立链接) 8 git pull <远程仓库别名> [远程分支名]:[本地分支名] 9 #简写:(远程分支名和本地分支名相同) 10 git pull <远程仓库别名> [分支名] 11 12 #创建远程分支&推送本地分支到远程分支 13 #1、会创建远程分支 14 #2、远程分支与本地分支名字相同 15 git push origin [branch-name] 16 17 #删除远程分支(本地分支还保留),危险操作 18 git push origin :[remote_branch] 19 20 #拉取远程分支并在本地创建分支(注:远程分支前加origin) 21 git checkout -b [local_branch] origin/[remote_branch]
七、解决本地分支冲突
1、本地分支修改文件
2、切换分支修改相同文件相同行内容
1 git checkout master
3、在主分支进行合并
1 git merge dev1
此时出现冲突问题
4、冲突解决办法
根据业务进行手动解决
-
-
第二步:把文件修改到满意的程度,保存
-
第三步:
git add [文件名]
-
第四步:
git commit -m '日志信息'
-
解决冲突后重新add,commit
5、查看分支合并图
1 git log --graph --pretty=oneline
八、多人冲突解决
1、先拉取
2、手动改冲突
3、重新add、commit、push