码农知识堂 - 1000bd
Python
PHP
JS/TS
JAVA
C/C++
C#
GO
Kotlin
Swift
Gitlab常用命令总结汇总
Gitlab常用命令
本地
初始化
全局变量
全局配置
git config --global user.name "your name" #设置全局用户名#
git config --global uer.email "your email" #设置全局邮箱#
版本库配置
git config --global color.ui true #让Gitlab显示不同的颜色#
git config core.ignorecase true #让 Git 对仓库中的字符大小写敏感#
查看所有的已设置的配置
git config -l
设置默认编辑器
git config --global core.editor notepad++ #设置notepad++为编辑器#
解决中文乱码问题
ls命令显示中文文件名乱码
在git/git-completion.bash中增加一行
alias ls='ls --show-control-chars --color=auto'
git commit不能提交中文注释
修改git/inputrc中对应的行
set output-meta on
set convert-meta off
查看git log,如果乱码
LESSCHARSET=utf-8
设置 commit log 提交时使用 utf-8 编码,可避免服务器上乱码,同时与linux上的提交保持一致
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
初始化版本库
git init
设置忽略的文件
设置每个人都想要忽略的文件
在根目录建一个名为.gitignore的文本文件
在命令行执行echo *.jpg>.gitignore
将.gitignore文件加入版本库并提交
设置只有自己需要忽略的文件
修改.git/info/exclude文件
可以使用正则表达式
例如:*.[oa]等价于*.o和*.a
添加新文件到版本库
添加单个txt文件
git add somefile.txt
添加所有的txt文件
git add *.txt
添加所有文件
git add .
提交
git commit -m "add all txt files"
日常操作
提交
提交所有修改
git commit -m "some msg" -a
提交单个文件
git commit -m "add msg to readme.txt" readme.txt
增补提交
git commit -C head -a --amend
不会产生新的提交历史记录
撤销修改
撤销尚未提交的修改
撤销1~2个文件的修改
git checkout head readme.txt todo.txt
撤销对所有txt文件的修改
git checkout head *.txt
撤销对所有文件的修改
git checkout head
撤销本地所有修改的, 没有的提交的内容,都返回到原来的状态
git checkout .
撤销提交
反转提交
例:反转最近一次提交
git revert --no -commit head
复位
取消暂存
git reset head或者git reset head
复位到head之前的那个版本
git reset HEAD^^
让版本库,暂存区的内容回退2次,工作区不变
git reset HEAD^^/HEAD~2
分支
列出本地分支
git branch
列出所有分支
git branch -a
检出分支
git checkout
基于当前分支的末梢创建分支并检出分支
git checkout -b
基于某次提交、分支或标签创建新分支
git branch emputy bfe57de0
git branch emputy2 emputy
建立本地分支与远程分支的联系
git branch --set-upstream-to=origin/< branch > feture-test
< branch >是远程分支名,feture-test是本地分支名
合并分支
普通合并
合并并提交
git merge < branchname >
*如果发生了冲突,就不会自动提交,如果冲突不多不想立即解决他们,可以直接使用git checkout head 撤销
合并但不提交
git merger --no-commit
压合合并
压合合并后直接提交
git merge --squash < branchname >
压合合并后但不提交
git merger --squash --no-commit
*两个人合作开发一个新功能时,需要在一个分支上提交多次,开发完成之后在压合成一次提交
拣选合并
挑选某次提交合并但不提交
git cherry-pick --no-commit 5b54b4
但是要合并的提交只要比当前高2个版本,就会出现奇怪的冲突问题
重命名分支
git branch -m < branchname > < newname >
*不会覆盖已存在的同名分支
git branch -M < branchname > < newname >
*会覆盖已存在的同名分支
删除分支
git branch -d < branchname >
*如果分支没有被合并会删除失败
git branch -D < branchname >
*即使分支没有被合并会删除
切换分支
git checkout < branchname >
解决冲突
冲突很少时
直接编辑有冲突的文件然后提交即可
冲突比较复杂时
git merge tool
会生成.BACKUP, .BASE, .LOCAL和.REMOTE四个文件
然后自动调用冲突解决工具
解决之后手动删除.orig文件(冲突解决之前的文件备份)
提交
标签
创建标签
为当前分支最近一次提交创建标签
git tag 1.0
*标签没有重命名
为A分支最近一次提交创建标签
git tag A_1.0 A
*也可以把标签命名为A/1.0
为某次历史提交创建标签
git tag 1.0 4ed54x21
显示标签列表
git tag
检出标签
git checkout 1.0
*查看标签断面很方便的方法,但是不能提交
由标签创建分支
git branch b1.1.1.1
git checkout -b b1.1.1.1
删除标签
git tag -d 1.0
查看状态
当前状态
git status
历史记录
git log
gitk
gitk
查看当前分支历史记录
gitk < branchname >
查看某分支历史记录
gitk -all
查看所有分支
每个分支最后的提交
git branch -v
其他
导出版本库
git archive --format=zip head>nb.zip
git archive --format=zip --prefix=nb1.0/ head>nb.zip
远程
初始化
克隆版本库
git clone < url >
克隆之后会自动添加4个config
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=d:\\usb
branch.master.remote=origin
branch.master.merge=refs/heads/master
别名
添加远程版本库的别名
git remote add <别名> <远程版本库的url >
添加别名后会自动添加2个config
remote.origin.url=d:\\usb
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
删除远程库的别名和相关分支
git remote rm < 别名 >
创建一个无本地分支的库
git init -bare
*当需要一个公用的库时,可以简称bare库
日常操作
分支
列出远程分支
git branch -r
删除远程库中已经不存在的分支
git remote prune origin
从远程库获取
获取但不合并
git fetch < 远程版本库 >
例:git fetch origin (origin是远程库的默认别名)
例:git fetch d:\\git\\nb
获取并合并到当前本地分支
git pull
等价于git pull origin
需配置branch.master.remote=origin和branch.master.merge=refs/heads/maeter如果使用了git clone克隆远程库会自动添加这个配置
git pull d:\\git\\nb master
推入远程库
git push origin master
*远程的master不能是当前分支
The DevSecOps Platform | GitLab
生成SSH Key
如果以前生成过SSH Key,要先备份
生成SSH Key
将SSH Key添加到Gitlab账户里
免密登录
Gitlab配置多个ssh key
可以参考此文章:https://blog.csdn.net/qq_39361915/article/details/122545320
https://blog.csdn.net/qq_39361915/article/details/122545320
配置完免密登录后,仍然需要输入密码的问题
可以参考文章:https://blog.csdn.net/weixin_43106956/article/details/113187629?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-113187629-blog-107946780.235%5Ev38%5Epc_relevant_sort&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-113187629-blog-107946780.235%5Ev38%5Epc_relevant_sort&utm_relevant_index=9
https://blog.csdn.net/weixin_38750432/article/details/107946780?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-107946780-blog-112100505.235%5Ev38%5Epc_relevant_sort&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-107946780-blog-112100505.235%5Ev38%5Epc_relevant_sort&utm_relevant_index=6
相关阅读:
Linux安装MySQL8.0服务
SpringBoot中“@SpringBootApplication“自动配置原理《第七课》
2023年【河北省安全员B证】免费试题及河北省安全员B证作业考试题库
Unity的粒子总是丢材质
Ai-WB2-32S在window下使用vs 和 msys2编译以及烧录
1075 PAT Judge
【回眸】英飞凌TC397测试Jupiter源代码
不容易解的题10.7
9.18算法
Java实习生面试题汇总
原文地址:https://blog.csdn.net/ysten618/article/details/132743545
最新文章
攻防演习之三天拿下官网站群
数据安全治理学习——前期安全规划和安全管理体系建设
企业安全 | 企业内一次钓鱼演练准备过程
内网渗透测试 | Kerberos协议及其部分攻击手法
0day的产生 | 不懂代码的"代码审计"
安装scrcpy-client模块av模块异常,环境问题解决方案
leetcode hot100【LeetCode 279. 完全平方数】java实现
OpenWrt下安装Mosquitto
AnatoMask论文汇总
【AI日记】24.11.01 LangChain、openai api和github copilot
热门文章
十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
奉劝各位学弟学妹们,该打造你的技术影响力了!
五年了,我在 CSDN 的两个一百万。
Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
面试官都震惊,你这网络基础可以啊!
你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
心情不好的时候,用 Python 画棵樱花树送给自己吧
通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
13 万字 C 语言从入门到精通保姆级教程2021 年版
10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系
2656653265@qq.com
京ICP备2022015340号-1
正则表达式工具
cron表达式工具
密码生成工具
京公网安备 11010502049817号