环境:ubuntu16.04
参考:https://baijiahao.baidu.com/s?id=1621620608602705821&wfr=spider&for=pc
https://www.cnblogs.com/Sharley/p/6133721.html
一、本地仓库管理:
1、首先切换(进入)到你的项目目录
cd your_project/
2、本地库初始化
git init
3、设置签名
作用:区分不同开发人员的身份。
说明:这里设置的签名和登录远程库(代码托管中心)的账户没有关系。
1)、项目级别签名:
git config user.name "your_name"
git config user.email your_email@xx.com
查看签名信息位置:
cat .git/config
2)、系统级别签名:
git config --global user.name "your_name"
git config --global user.email your_email@xx.com
查看签名信息位置:
cd ~
cat .gitconfig
4、基本操作
1)、查看状态:
git status //查看工作区、暂存区的状态
2)、添加操作:
git add 文件名 //将工作区新建/修改的内容添加到暂存区
git add . //把所有文件加入到暂存区
3)、提交操作:
git commit -m “commit message” 文件名 //将暂存区的内容提交到本地库,不指定文件名表示提交所以文件
4)、查看历史记录
git log
git log --pretty=oneline
git log --oneline
git reflog (HEAD@{移动到当前版本需要多少步})
5)、前进和后退
git reset --hard 哈希索引值 //基于索引值的操作(推荐做法)
git reset --hard HEAD^ //使用^符号(只能后退,一个^表示后退一步)
git reset --hard HEAD~2 //使用~符号(只能后退,n表示后退n步)
6)、比较文件差异
git diff [文件名] (将工作区中的文件和暂存区的进行比较)
git diff [本地库历史版本] [文件名] (将工作区中的文件和本地库历史记录比较,不带文件名的话,会比较多个文件)
5、分支管理
在版本控制过程中,使用多条线同时推进多个任务。
1)、分支的优势
a)、同时并行推进多个功能开发,提高开发效率。
b)、各个分支在开发过程中,如果某个分支开发失败,不会对其他分支有影响,失败的分支可以删除,然后重新开始即可。
2)、分支常用命令
git branch -v //查看本地库中的所有分支
git branch dev //创建一个新的分支
git branch -d dev //删除指定分支
git push origin --delete dev //删除远程分支
git checkout dev //切换分支
git checkout -b dev //创建一个新的分支,并切换分支
3)、分支合并
git checkout master //切换到接收修改的分支
git merge dev //执行merge命令
切换分支后,在dev分支中做出的修改需要合并到被合并的分支master上.
6、冲突解决
1)、原因
当一个分支的内容和另一个分支的内容不同时,此时任一分支合并另一分支过程中就会出现冲突。因此自己分支对应的模块不能随意更改其他分支的模块。
2)解决
a)、编辑文件,删除特殊符号。
b)、将文件修改完毕后,保存退出。
c)、git add [文件名]。
d)、git commit –m “日志信息”。
7、项目管理流程
一、服务器仓库管理
有时候我们需要将自己编写好的本地代码上传到服务器,和服务器的主程序进行merge。这是就需要搭建git服务器。
1、Gogs简介
Gogs 是一款极易搭建的自助 Git 服务。
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
2、搭建Gogs
参考:https://blog.csdn.net/qq_20492999/article/details/80422231
3、使用Gogs
1)、注册账号
2)、创建一个repository
3)、 创建本地ssh-key
ssh-keygen -t rsa
4)、查看自己的密钥
cat /home/bw/.ssh/id_rsa.pub
5)、把秘钥添加到git服务器
添加之后就可以无障碍访问git服务器。
6)、找到自己的新建的工程,有一个简单的教程
另外,如果要从服务器取回与本地合并需要用到pull
比如,要取回origin
主机的next
分支,与本地的master
分支合并,需要写成下面这样 -
git pull origin next:master
如果远程分支(next
)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:
git pull origin next