一、gitlab的安装
Git工具官网:Git - Downloads
之后一直点击下一步,等待安装完成
二、配置SSH
1、配置用户名和邮箱
①在自己喜欢的位置创建一个文件夹
②鼠标右击选择,git bash here
③配置提交人姓名、邮箱
git config --global user.name(自己的git命名)
git config --global user.email(自己的邮箱)
2、配置SSH
①生成密钥
ssh-keygen -t rsa -C "自己的邮箱地址"
②进入密钥目录查看密钥
cd ~/.ssh
③查看密钥,并复制密钥到Gitlab上
cat id_rsa.pub
④复制公钥:复制公钥到gitlab上
三、从gitlab上拉取项目
1、进入gitlab中,clone自己需要的SSH
2、在自己想要的位置建立文件夹,点击鼠标右键,git bash here,输入git clone + SSH
git clone + SSH
若克隆分支,输入git clone -b 分支名+ SSH
git clone -b 分支名 SSH
四、上传更新代码到gitlab
1、git status 查看本地仓库已变更的文件(红色的都是)
2、git add -A 将新增、修改、删除的文件,全部提交到暂存区
3、git commit -a -m "注释"
4、git push
五、上传代码出错
1、git pull 拉取代码
2、git log --all --graph 查看所有分支上传情况
(找到自己上传的文件,下一个就是最新上传的)
3、git reset --hard + 最新上传版本号 回退到该版本
4、git push -f 删除已push的错误代码
5、git log --all --graph 查看代码是否删除
六、提交分支到gitlab
从gitlab中clone HTTP的地址
1、首先建立一个新的文件夹,点击进入文件夹内,右键选择git bash here
输入git clone + HTTP
git clone HTTP
项目拉取后,该文件夹下会出现一个新的文件夹,cd 到该文件下
cd 文件名
注意:我们这里所在分支是main,如果想要上传到别的分支上,需要切换分支git checkout+分支名
git checkout 分支名
2、输入git add ./
git add ./
. 表示上传所有代码
可以选择上传自己需要的代码
git add *.cpp *.ui
3、git commit -m "注释"
git commit -m "第一版"
4、git push
5、刷新gitlab页面,上传成功
七、回退到某一版本
1、git clone + HTTP
2、git branch -a 查看所有分支
3、git checkout +分支名 (切换到自己需要修改的分支)
4、git log (查看版本号)
5、git reset --hard + 版本号 (回退到该版本)
git revert + 版本号 (撤销该版本的提交,其余保留)
git cherry-pick + 版本号 (取消对该版本的撤销)
6、git push -f (撤销上一次上传)
git reset --hard HEAD^ (回退到上一版本)
git reset --hard HERD^^ (回退到上上版本)
git reset --hard HEAD ~100 (回退到上100版本)
git fsck --lost-found 回退
八、合并不同分支
1、git clone + HTTP
2、git branch -a (查看所有分支)
3、git checkout 分支名 (切换到自己的分支)
4、git checkout 主分支 (切换到主分支)
5、git pull (拉取主分支)
6、git checkout 分支名 (切换自己的分支)
7、git merge 主分支 (合并分支)
如果出现冲突
git status (查看哪些文件出现冲突)
打开自己的文件,将需要的保留,其余的都删除
<<<<<HEAD
自己分支的内容
=========
主分支内容
>>>>>主分支名
将<<<<<HEAD,======,>>>>>主分支名 和自己不需要的代码都删除
git add 冲突文件
8、git commit -m "注释"
9、git push (完成合并)
九、切换分支
十、gitlab的一些命令
1、git add + 文件名 上传本地文件
2、git branch 查看当前分支名
git branch -a 列出本地分支与远程分支
git branch -d 分支名 删除分支
git branch -D 分支名 删除本地分支
3、git checkout 切换分支
git checkout 分支名 切换到该分支
git checkout -b 分支名 创建并切换到该分支
git checkout -B 分支名 重置分支(删除已存在的分支并重新创建,分支不存在也不会报错)
4、git checkout . 撤销本地所有修改的,没有提交的内容,都回到原来的状态
git checkout head 文件名 文件名 撤销1~2个文件的修改
git checkout head *.cpp 撤销所有cpp文件的修改
git checkout head 撤销对所有文件的修改
5、git commit -m "注释" 将暂存区里的改动提交到本地版本库
git commit -m "注释" -a 提交所有修改
git commit --amend -m "注释1" 修改上一次提交的注释
6、git diff + 文件名 查看文件修改了什么内容
7、git init 初始化
8、git log 查看提交的历史
git log -1 查看最近1次提交记录
git log -2 查看最近2次提交记录
git log -p 查看所有提交记录的变动信息
git log -p <commit id> 查看commit id及其以前的记录
git log --name-only 查看变动的文件名,查看哪些文件发生了变化
git log --name-status 查看文件变动状态,显示增加、修改等对应的字母标识
git log --stat 显示哪个文件发生了改变,以及对应的新增行数、减少行数和变动文件数
git log --graph 提交记录左侧显示虚线作为分割区域
git log --all --graph 显示所有的分支上传情况
9、git merge 分支名 合并某分支到当前分支
10、git pull (--rebase) 从远端拉取代码,更新我们的仓库
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
git pull = git fetch + git merge
git fetch 是将远程库的最新内容拉取到本地库,用户在检查了以后决定是否合并到工作区中
git merge 是将本地的两个分支合并,如果在分支A中执行git merge B,那就是将分支B中的代码合并到分支A中
git pull 是将远程主机的最新内容拉取到本地后直接合并到工作区中,这样可能会产生冲突,需要手动解决
git pull --rebase = git fetch + git rebase
git rebase 是将提交到某一分支上的所有修改都移至另一分支上,如果在B分支上使用git rebase A就是将B分支上的修改都变基(移到)A分支上
git pull --rebase 是将远程主机的最新内容拉取到本地库后直接变基到工作区中
11、git push (-u) 提交到远程仓库
12、git push -f 删除已经push的内容
13、git reflog 查看所有分支的所有操作记录,包括已经被删除的commit记录和reset操作
14、get remote 查看远程库的信息,默认为origin
git remote -v 显示更详细的信息
15、git reset --hard + 版本号 回退到某一版本
16、git show commit_id 查看某一版本修改了什么内容
17、git stash 暂存上一次修改,准备切换到其他的分支
git stash pop 还原上一次的修改,将暂存的修改加入到新的分支
18、git status 文件在暂存区的状态