• 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

     

  • 相关阅读:
    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