GitLab 及 Git 使用学习
一、本地代码Git提交到GitLab中
1.初始化Git
$ mkdir git_repertory
$ cd git_repertory
$ git init
2.远程建立连接
$ git remote add origin http://git.XXX.cn/XXX/XXX/XXX.git
3.拉取远程分支
//拉取所有远程分支
$ git fetch --all
//拉取远程`master`分支
$ git fetch origin master
4.查看所有分支
$ git branch -al
5.Push 代码
生成密钥(pubilckey)
ssh-keygen
输入指令后一直点击回车,即可生成密钥(publickey)
在c盘用户路径下可以查看密钥:
C:\Users\用户名\.ssh
git init
#设置新建文件夹为版本控制,初始化git config --global user.name “输入你的用户名”
git config --global user.email “输入你的邮箱”
git config --list
#查看配置好的用户名和密码添加远程仓库,#由于本地 Git 仓库和 Gitlab 仓库之间的传输是通过SSH加密的,#所以我们需要配置验证信息
ssh-keygen -t rsa -C “刚才输入的邮箱”
#按回车,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行,#会在C:\Users\lshel\.ssh会生成公钥和私钥文件cat ~/.ssh/id_rsa.pub
#查看私钥文件,不论你现在在c盘还是d盘都可以查看到
将id_rsa.pub中的内容复制到GitLab的SSH密钥对中,即可从GitLab上拉取或上传代码。
6.上传到其他分支
1.~~先同1.中的步骤~~ #这步可以省略2.git branch -a #查看所有分支 3.git branch slave #创建slave分支4.git checkout slave #切换到slave分支5.git remote add origin https://gitlab.com/helenls/sca_apitest01.git#关联远程仓库,添加后,远程库的名字就是 origin,这是 Git 默认的叫法,也可以改成别的6.git push origin slave:slave #本地分支(冒号前面的分支)与远程分支同名(冒号后面的分支)未创建分支。7.git push origin slave #上传分支,上传 到gitlab,slave为gitlab名字
7.删除分支
在Git中删除分支可以使用
git branch
命令配合
-D
或
-d
选项。以下是删除分支的几种常见方法:
7.1. 删除本地分支:
如果你想要删除一个已经合并到主分支的本地分支,可以使用
-d
选项:
git branch -d branch_name
这里
branch_name
是你想要删除的分支名称。
7.2. 强制删除本地分支:
如果分支有未合并的更改,Git 默认不允许删除,以防丢失更改。如果你确定要删除这个分支以及其所有更改,可以使用
-D
选项强制删除:
git branch -D branch_name
7.3. 删除远程分支:
删除远程分支可以使用
git push
命令配合
--delete
选项:
git push origin --delete branch_name
这里
origin
是远程仓库的默认名称,
branch_name
是远程分支的名称。
7.4. 删除所有已合并的本地分支:
如果你想删除所有已经合并到当前分支的本地分支,可以使用以下命令:
git branch --merged
git branch --merged | grep -v '^*' | xargs git branch -d
第一条命令会列出所有已经合并的分支,第二条命令会删除所有除了当前检出分支之外的已合并分支。
7.5. 删除所有未合并的本地分支:
如果你想要删除所有未合并到当前分支的本地分支,可以使用以下命令:
git branch --no-merged
git branch --no-merged | xargs git branch -d
第一条命令列出所有未合并的分支,第二条命令删除它们。
删除分支是不可逆的操作,一旦执行了删除命令,就无法恢复被删除分支上的更改。因此,在执行删除操作之前,需要确保不再需要这个分支或其上面的更改。
问题 1 :当在 GitLab 的 web 删除远端分支后,本地代码仓库依旧显示存在已删除的远端分支,应该如何同步成最新分支结构?
当在Web界面上删除了远程分支,但本地仍然显示该远程分支时,可以通过以下来同步本地仓库,以删除那些已经不存在的远程分支记录:
- 首先,使用
git fetch
命令来获取远程仓库的最新状态。加上--prune
选项可以同时删除本地不存在的远程分支跟踪信息:git fetch --prune
或者简写为:git fetch -p
- 如果只想针对特定的远程仓库进行操作,比如
origin
,可以使用:git remote prune origin
- 执行上述命令后,可以使用
git branch -a
来查看所有本地分支和远程分支的列表,确认那些远程分支已经被删除。 - 如果想手动删除远程分支的跟踪信息,可以使用:
git branch -r -d origin/<branch_name>
这里<branch_name>
是远程分支的名称。 - 如果在执行
git fetch
或git fetch --prune
后遇到问题,比如提示某些分支不存在,可以通过git remote show origin
查看远程分支和本地分支的对应关系,并根据提示使用git remote prune
来同步删除本地的远程分支记录 。 - 另外,如果你在执行
git branch -a
后发现远程分支仍然显示,可以尝试使用git fetch origin --prune
命令来确保本地分支记录与远程仓库保持同步 。 - 如果需要从远程仓库拉取最新的分支列表并同步到本地,可以使用:
git fetch origin
这将拉取远程origin
的所有分支更新,但不会自动删除已经从远程删除的分支。对于已远程删除的分支,需要使用git remote prune origin
来清理 。 - 如果在尝试删除远程分支时遇到错误提示,例如提示无法推送到未限定的目标,可以通过执行
git fetch -p
来同步分支列表,-p
参数代表精简,将删除那些已经远程删除的分支 。 - 在某些情况下,如果远程分支被删除,本地分支列表中可能仍然会显示这些分支。使用
git fetch -p
可以更新本地分支列表,移除那些已经从远程仓库删除的分支 。
版权归原作者 Nerd Nirvana 所有, 如有侵权,请联系我们删除。