前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【linux命令讲解大全】015 .Git:分布式版本控制系统的先驱和常用命令清单(四)

【linux命令讲解大全】015 .Git:分布式版本控制系统的先驱和常用命令清单(四)

作者头像
全栈若城
发布2024-03-02 11:28:05
950
发布2024-03-02 11:28:05
举报
文章被收录于专栏:若城技术专栏若城技术专栏

分支(Branch)

删除分支

  • 删除远程分支:
代码语言:javascript
复制
git push origin :branchName  # 删除远程分支  
git push origin --delete new # 删除远程分支new   
  • 删除本地分支:
代码语言:javascript
复制
git branch -d branchName     # 删除本地分支,强制删除用-D  
git branch -d test      # 删除本地test分支   
git branch -D test      # 强制删除本地test分支   
git remote prune origin # 远程删除了,本地还能看到远程存在,这条命令删除远程不存在的分支

提交分支

将本地分支提交到远程主机中:

代码语言:javascript
复制
git push -u origin branchName # 提交分支到远程origin主机中  

拉取分支

当远程分支已被删除,但本地仍存在同名分支时,使用以下命令自动清理:

代码语言:javascript
复制
git fetch -p #拉取远程分支时,自动清理 远程分支已删除,本地还存在的对应同名分支。

分支合并

将分支合并到当前分支:

代码语言:javascript
复制
git merge branchName      # 合并分支 - 将分支branchName和当前所在分支合并   
git merge origin/master   # 在本地分支上合并远程分支。   
git rebase origin/master  # 在本地分支上合并远程分支。   
git merge test            # 将test分支合并到当前分支   

分支重命名

重命名分支:

代码语言:javascript
复制
git branch -m old new #重命名分支

查看分支

  • 列出本地分支:
代码语言:javascript
复制
git branch      # 列出本地分支   
  • 列出远程分支:
代码语言:javascript
复制
git branch -r   # 列出远端分支   
  • 列出所有分支:
代码语言:javascript
复制
git branch -a   # 列出所有分支   
  • 查看各个分支最后一个提交对象的信息:
代码语言:javascript
复制
git branch -v   # 查看各个分支最后一个提交对象的信息   
  • 查看已经合并到当前分支的分支:
代码语言:javascript
复制
git branch --merged      # 查看已经合并到当前分支的分支   
  • 查看未合并到当前分支的分支:
代码语言:javascript
复制
git branch --no-merged   # 查看为合并到当前分支的分支   
  • 查看remote地址和远程分支:
代码语言:javascript
复制
git remote show origin  # 可以查看remote地址,远程分支

新建分支

代码语言:javascript
复制
git branch test # 新建test分支  
git branch newBranch 3defc69 # 指定哈希3defc69,新建分支名字为newBranch
git checkout -b newBranch origin/master # 取回远程主机的更新以后,在它的基础上创建一个新的分支  
git checkout -b newBranch 3defc69 # 以哈希值3defc69,新建newBranch分支,并切换到该分支

连接分支

建立本地分支与远程分支之间的链接:

代码语言:javascript
复制
git branch --set-upstream dev origin/dev     # 将本地dev分支与远程dev分支之间建立链接  
git branch --set-upstream master origin/next # 手动建立追踪关系  

分支切换

切换分支:

代码语言:javascript
复制
git checkout test     # 切换到test分支   
git checkout -b test  # 新建+切换到test分支   
git checkout -b test dev # 基于dev新建test分支,并切换   

远端操作

代码语言:javascript
复制
git fetch <远程主机名> <分支名>   # fetch取回所有分支(branch)的更新  
git fetch origin remotebranch[:localbranch]   #  从远端拉去分支[到本地指定分支]   
git merge origin/branch   # 合并远端上指定分支   
git pull origin remotebranch:localbranch  #  拉去远端分支到本地分支   
git push origin branch    # 将当前分支,推送到远端上指定分支   
git push origin localbranch:remotebranch  # 推送本地指定分支,到远端上指定分支   
git push origin :remotebranch   # 删除远端指定分支   
git checkout -b [--track] test origin/dev # 基于远端dev分支,新建本地test分支[同时设置跟踪]  

Submodule

克隆项目同时克隆Submodule

代码语言:javascript
复制
git clone https://github.com/jaywcjlove/handbook.git --depth=1 --recurse-submodules

克隆项目后手动克隆子模块

代码语言:javascript
复制
git submodule add --force '仓库地址' '路径'
# 其中,仓库地址是指子模块仓库地址,路径指将子模块放置在当前工程下的路径。
# 注意:路径不能以 / 结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利 Clone)
  • 初始化子模块:
代码语言:javascript
复制
git submodule init # 初始化submodule
  • 更新子模块:
代码语言:javascript
复制
git submodule update # 更新submodule(必须在根目录执行命令)
  • 下载带有submodule的工程:
代码语言:javascript
复制
git submodule update --init --recursive  # 下载的工程带有submodule
  • 子模块含有其他子模块时一次更新:
代码语言:javascript
复制
git submodule foreach git pull  # submodule 里有其他的 submodule 一次更新
  • 子模块更新:
代码语言:javascript
复制
git submodule foreach git pull origin master # submodule更新
  • 给所有子模块初始化并更新:
代码语言:javascript
复制
git submodule foreach --recursive git submodule init
git submodule foreach --recursive git submodule update

删除文件

代码语言:javascript
复制
git rm -rf node_modules/

Remote

Git是一个分布式代码管理工具,因此可以支持多个仓库。在Git中,服务器上的仓库在本地被称为远程(Remote)。个人开发时,可能用到多个远程仓库。

  • 添加远程仓库:
代码语言:javascript
复制
git remote add origin1 git@github.com:yanhaijing/data.js.git  
  • 显示全部远程仓库:
代码语言:javascript
复制
git remote    # 显示全部源  
  • 显示全部远程仓库(包含详细信息):
代码语言:javascript
复制
git remote -v # 显示全部源+详细信息  
  • 重命名远程仓库:
代码语言:javascript
复制
git remote rename origin1 origin2 # 重命名  
  • 删除远程仓库:
代码语言:javascript
复制
git remote rm origin    # 删除  
  • 查看指定远程仓库的全部信息:
代码语言:javascript
复制
git remote show origin  # 查看指定源的全部信息  

标签(Tag)

在开发到一定阶段时,给代码打标签是非常有用的。

  • 新建带注释的标签:
代码语言:javascript
复制
git tag -a v0.1 -m 'my version 1.4' # 新建带注释标签   
  • 一次性推送所有标签:
代码语言:javascript
复制
git push origin --tags              # 一次性推送所有分支 
  • 推送单个标签到origin源:
代码语言:javascript
复制
git push origin v1.5                # 推送单个tag到orgin源上 
  • 验证标签,验证已经签署的标签:
代码语言:javascript
复制
git tag -v v1.4.2.1                 # 验证标签,验证已经签署的标签
  • 查看现有标签:
代码语言:javascript
复制
git tag        # 列出现有标签   
  • 新建标签:
代码语言:javascript
复制
git tag v0gi.1 # 新建标签   
  • 切换到标签:
代码语言:javascript
复制
git checkout tagname   # 切换到标签       
  • 删除标签:
代码语言:javascript
复制
git tag -d v0.1 # 删除标签   
  • 删除远程标签:
代码语言:javascript
复制
git push origin :refs/tags/v0.1 # 删除远程标签   
  • 获取远程所有内容(包括标签):
代码语言:javascript
复制
git pull --all # 获取远程所有内容包括tag  
  • 查看本地版本信息:
代码语言:javascript
复制
git --git-dir='<绝对地址>/.git' describe --tags HEAD # 查看本地版本信息  

日志(Log)

  • 显示单行提交日志:
代码语言:javascript
复制
git config format.pretty oneline  #显示历史记录时,每个提交的信息只显示一行   
  • 彩色的Git输出:
代码语言:javascript
复制
git config color.ui true #彩色的 git 输出   
  • 查看最近的提交日志:
代码语言:javascript
复制
git log #查看最近的提交日志   
  • 单行显示提交日志:
代码语言:javascript
复制
git log --pretty=oneline #单行显示提交日志   
  • 使用图形展示提交日志:
代码语言:javascript
复制
git log --graph --pretty=oneline --abbrev-commit   
  • 显示第几条日志(倒数):
代码语言:javascript
复制
git log -num #显示第几条log(倒数)   
  • 查看所有分支的所有操作记录:
代码语言:javascript
复制
git reflog #查看所有分支的所有操作记录   
  • 显示一天内的提交日志;可以使用各种时间格式,例如特定日期(“2008-01-15”)或多久以前(“2 years 1 day 3 minutes ago”):
代码语言:javascript
复制
git log --since=1.day #一天内的提交;你可以给出各种时间格式,比如说具体的某一天(“2008-01-15”),或者是多久以前(“2 years 1 day 3 minutes ago”)。   
  • 查看自己的提交日志:
代码语言:javascript
复制
git log --pretty="%h - %s" --author=自己的名字 #查看自己的日志   
  • 展开两次更新,显示每次提交的内容差异:
代码语言:javascript
复制
git log -p -2 #展开两次更新显示每次提交的内容差异   
  • 快速浏览其他协作者提交的更新:
代码语言:javascript
复制
git log --stat #要快速浏览其他协作者提交的更新都作了哪些改动   
  • 定制显示记录格式:
代码语言:javascript
复制
git log --pretty=format:"%h - %an, %ar : %s"#定制要显示的记录格式   
  • 拓扑顺序展示提交日志:
代码语言:javascript
复制
git log --pretty=format:'%h : %s' --date-order --graph # 拓扑顺序展示   
  • 显示日期(YYYY-MM-DD):
代码语言:javascript
复制
git log --pretty=format:'%h : %s - %ad' --date=short #日期YYYY-MM-DD显示  
  • 只显示commit:
代码语言:javascript
复制
git log <last tag> HEAD --pretty=format:%s # 只显示commit   
  • 写入全局配置,设置日期格式为YYYY-MM-DD:
代码语言:javascript
复制
git config --global format.pretty '%h : %s - %ad' --date=short #日期YYYY-MM-DD显示 写入全局配置

选项

说明

%H

提交对象(commit)的完整哈希字串

%h

提交对象的简短哈希字串

%T

树对象(tree)的完整哈希字串

%t

树对象的简短哈希字串

%P

父对象(parent)的完整哈希字串

%p

父对象的简短哈希字串

%an

作者(author)的名字

%ae

作者的电子邮件地址

%ad

作者修订日期(可以用 -date= 选项定制格式)

%ar

作者修订日期,按多久以前的方式显示

%cn

提交者(committer)的名字

%ce

提交者的电子邮件地址

%cd

提交日期

%cr

提交日期,按多久以前的方式显示

%s

提交说明

以上表格列出了在Git中可用的Pretty Formats选项及其说明。您可以根据需要选择相应的选项来自定义log输出格式,例如展示作者、提交日期和提交说明等信息。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分支(Branch)
    • 删除分支
      • 提交分支
        • 拉取分支
          • 分支合并
            • 分支重命名
              • 查看分支
                • 新建分支
                  • 连接分支
                    • 分支切换
                      • 远端操作
                      • Submodule
                        • 克隆项目同时克隆Submodule
                          • 克隆项目后手动克隆子模块
                            • 删除文件
                            • Remote
                            • 标签(Tag)
                            • 日志(Log)
                            相关产品与服务
                            代码托管
                            CODING 代码托管(CODING Code Repositories,CODING-CR)是为开发者打造的云端便捷代码管理工具,旨在为更多的开发者带去便捷、高效的开发体验,全面支持 Git/SVN 代码托管,包括代码评审、分支管理、超大仓库等功能。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档