昨天开始看一套java接口自动化的视频,今天看到的一章是关于git这个工具使用的,上大学那会用过svn作为版本管理工具,包括现在所在的公司,用的也还是svn进行管理。其实老早就听闻过Git,Github,但就是一直没去了解。也就是在18年初寒假那会看一个linux视频时,里面有讲到如何在linux上面配置git,但我也是一看就过了。
现在看的是Java接口自动化的视频,里面老师也介绍了这个工具会在课程中使用到,所以也刚好趁这个机会跟着耍耍。
GitHub的特点:
- 开源的分布式版本管理系统
- 开源项目集中的代码库
- 所有略有规模的公司都在使用
GitHub的功能介绍:
- 记录多个版本
- 查看历史版本,可以进行版本回退和前进的控制
- 多端共享代码,自动合并
GitHub和SVN
- SVN版本集中管理,所有的代码都在中央服务器上
- Git去中心化,每个服务器上都有一个完整的代码库
*Git客户端本地与GitHub服务端进行交互,可以通过配置sshkey进行交互,操作时就不用输入用户名和密码了,配置sshkey公文密钥的步骤:
打开Git命令行,
- 生成key: ssh-keygen -t rsa -C "邮箱地址"
- cd ~/.ssh (用户目录下的.ssh文件夹)
- 复制id_rsa_pub的公钥内容到github网站上(在setting-->SSH and GPG keys中)
Git的一些常用命令
代码提交
添加指定文件到暂存区
git add [file1] [file2]...
添加当前目录的所有文件到暂存区
git add.
提交暂存区到仓库区
git commit -m [message]
提交暂存区的指定文件到仓库区
git commit [file1][file2]... -m [message]
更新远程仓库
git remote update
取回远程仓库的变化,并与本地分支合并
git pull [remote][branch]
上传本地分支到远程仓库
git push [remote][branch]
分支操作
创建分支
git branch [branch-name]
切换分支
git checkout [branch-name]
删除分支
git branch -d [branch-name]
删除分支(远程仓库)
git push origin -delete [branch-name]
版本回退
回退到上一版本
git reset --hard HEAD^
回退到指定版本
git reset --hard [版本号]
查看版本记录,得到版本号
git reflog
解决分支合并冲突
合并分支命令
git merge [branch-name]
合并后出现冲突部分,Git会用<<<<<<<,=======,>>>>>>>标记出不同分支的内容。
小结:当Git无法自动合并分支的时候,就必须首先解决冲突。解决冲突后再次提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑成我们希望的内容,之后再提交。
一篇对于新手来说很实用的博客https://blog.csdn.net/autfish/article/details/52513465,Mark