一、Git安装配置
0.原理图
一些主要概念:
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
1.安装Git
1.命令安装:
sudo apt-get install git
2.源码安装:
1、安装git依赖的软件
sudo apt-get update -y
sudo apt-get install build-essential libssl-dev gettext tcl8.4 tk8.4 zlib1g-dev libcurl4-gnutls-dev libexpat1-dev -y
2、下载git安装包
可通过GitHub上的git项目来获取所需的git源码版本的下载地址。
使用wget下载 git 源代码:
wget https://github.com/git/git/archive/v2.21.0.tar.gz -O git.tar.gz
3、解压git安装包
tar -zxvf git.tar.gz
cd git-2.21.0
4、创建包并进行安装 git
make prefix=/usr all
sudo make prefix=/usr install
5.版本查看
git --version
2.配置Git
2.0配置用户信息
1.设置用户名
git config --global user.name "username"
2.设置邮箱 (没有双引号)
git config --global user.email useremail@qq.com
3.查看用户名和密码
git config user.name
git config user.email
4.网页端创建验证用的密钥
ssh-keygen -C 'you email address@gmail.com' -t rsa(注意ssh与-keygen之间没有空格)
说明:
执行以上命令会在用户目录~/.ssh/下建立2个相应的密钥文件,一个公有的(id_rsa.pub),一个私有的(id_rsa)。
进入~/.ssh文件夹,使用gedit id_rsa.pub,打开id_rsa.pub文件,复制其中所有内容。
接着登陆GitHub,打开“settings”,“SSH Keys”页面,粘贴刚才复制的内容,创建密钥。
5.可以使用 命令来测试连接是否畅通
ssh -T git@git.oschina.net
6.查看其他配置信息(git设置列表)
git config --list
2.1查看是否创建连接
git remote
2.2创建连接
git remote add origin + git项目仓库地址
git remote remove origin //与远端解除绑定
二、Git常用操作
0.初始化一个本地仓库
git init dirname
1.创建分支、切换分支
git branch dev //创建一个新的分支
git checkout dev 或 git switch dev //切换分支
一句话搞定:
git checkout -b dev //创建一个新的分支并进入该分支
2.同步代码
0.提交至本地仓库
git add 要提交的文件 (提交指定文件)
git add * 会忽略.gitignore把任何文件都加入
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
接下需要commit一下:
git commit -m"一些提交说明"
1.本地同步至服务器
git push -u origin master //注意第一次推送的时候可以加上 -u 参数
git push orign dev
2.服务器同步至本地
git fetch --all //下载远程的库的内容,不做任何的合并
git reset --hard origin/dev //把HEAD指向刚刚下载的最新的版本
3.次分支合并至主分支
要往哪个分支合并,先切换到该分支(比如:将dev分支内容合并至master,先将分支切换到master)
git switch master // 切换至master分支
git merge dev //意思是将dev分支的内容合并到master
git merge --abort //如果未commit,可以放弃合并;如果已经commit,回退版本
4.强制将dev分支合并到master
方法1:
切换到本地项目根目录:
git push origin dev:master -f //将 dev分支强制推送合并至master
方法2:
切换到本地项目根目录:
git checkout master //切换分支至master分支
git reset --hard dev //并将master分支重置为dev
git push origin master --force //将重置后的master分支强制推送更新(相当于删除master分支,test将其覆盖,并推送远程仓库)
三、不常用操作
3.1回退到以前的某个版本
方式一:reset(不推荐)
通过reset的方式,把head指针指向之前的某次提交,reset之后,后面的版本就找不到了。
操作步骤如下:
1、在gitlab上找到要恢复的版本号,如:
139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96
2、在客户端执行如下命令(执行前,先将本地代码切换到对应分支):
git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96
3、强制push到对应的远程分支(如提交到develop分支)
git push -f -u origin develop
方式二:revert(推荐)
这种方式不会把版本往前回退,而是生成一个新的版本。所以,你只需要让别人更新一下代码就可以了,你之前操作的提交记录也会被保留下来。
操作步骤如下:
1、找到你误提交之前的版本号 ( git log 或者 git reflog )
2、git revert -n 版本号
3、git commit -m xxxx 提交
4、git push 推送到远程
5、通知其他人更新代码
3.2回退至最近提交的一次版本
git reset --hard HEAD^ //版本回退,工作区和库区都进行相应的回退。
四、搭建Gitlab服务
说明:
gitlab需要至少4GB的内存,因为操作系统和其他应用进程都会使用内存。如果服务器的内存低于4G,配置gitlab的时候将会出错,使用gitlab的时候将有更多错误。
安装过程参考:
参考1:
https://blog.csdn.net/weixin_45074569/article/details/108549280
参考2:
http://adairjun.github.io/2016/12/20/gitlab/
五、遇到的问题(待补充。。。)
5.1git如何对字母大小写敏感?例如有两个同名文件夹,Test和test?
查看目前区分大小写状态:
git config core.ignorecase (正常为true,代表不区分大小写)
区分大小写,设置如下命令:
git config core.ignorecase false
如果不区分大小写,则:
git config core.ignorecase true