Git 命令介绍 | branch分支 远程追踪 提交找回 tag标签 config

git相关命令

git 命令可视化教学游戏
关于git
文档

git config

--local当前仓库设置
--global全局设置

git config --global user.name "xx"
git config --global user.email "xxx@xxx.xx"

-l--list 列出配置内容

创建仓库命令

$ git init 
# 初始化一个仓库
$ git clone 路径
# 从远程克隆一个仓库
git remote add 仓库名 <url>
# 添加远程仓库

提交

git add 文件/文件夹/.全部文件
# 将工作区内容添加到暂存区
git commit
# 将暂存区内容提交到本地仓库
git commit --amend
# 修改git提交记录
提交日志
git log
# 显示详细提交记录
git log --pretty=oneline
# 单行显示每条提交
git --no-pager log >> log.txt 
# 将所有日志保存至 log.txt
操作日志

包括已经被删除的 commit 记录和 reset 的操作

git reflog

使用 git reset --hard HEAD@{X} 就可以将误操作的提交找回了

其他
$ git status 
# 查询仓库状态
# 比较暂存区与工作区差异
git diff

# 比较本地仓库与暂存区
git diff -cached

# 比较本仓库与远程仓库
git diff master origin/master

--stat 显示有多少行发生变化
可指定文件/文件夹的差异比较

撤销

$ git reset 目标路径
# 版本回退 不适用于共用的远程仓库,结点会被遗弃,相当于修改了历史,各端分支版本就不统一了
# 其他人不知情的话,就会合并出很多分支
  • --mixed 为默认参数,回到指定提交(commit),工作区文件内容保持不变;被撤回的提交,其内容会重新进入工作区;同理暂存区中内容也会进入工作区。

  • --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有提交信息

$ git revert 
# 撤销所选修改(可恢复)。 不会舍去原有结点,而是在其后添加撤销后的结点,这样保留了历史
# 不仅如此可以达到移除指定提交的效果!

删除与重命名文件

$ git rm
# 删除工作区文件
$ git mv
# 移动或重命名工作区文件

# 删除缓存区文件
git rm --cached -f 文件名

远程操作

$ git remote
# 将本地参考链接到远程仓库 

$ git remote -v
# 查看链接的远程仓库

# 添加与移除
$ git remote add 仓库名 地址
$ git remote rm 仓库名
拉取和对应分支拉取
git fetch [<远程仓库> <远程分支>]
git fetch [<远程仓库> <远程分支>:<本地分支>]
# 从远程获取代码
# 远程分支 可以是分支可以是HEAD或相对路径,亦或是哈希值
# 当:目标分支 不存在时,将自动创建

git pull [<远程仓库> <远程分支>[:<本地分支>]]
# 从远程下载代码并与本地合并  git fetch 加 git merge 的简写
# git pull --rebase => git fetch 加 git rebase 的简写
# -u 可将本地分支与远程分支关联——远程追踪

git push [<远程仓库> [<本地分支>:]<远程分支>]
# 上传本地代码并与远程合并 分支不填时,默认HEAD所指的分支

<source>:<destination> 中,当source为空时,会删除掉远程目标分支 会创建本地目标分支
在本地远程分支表示为: 远程仓库名(默认origin)/ 分支名

git分支控制

查看分支

# 查看所有远程分支:
git branch -r
# 查看远程和本地所有分支: 
git branch -a
# 查看本地分支: 
git branch 

重命名分支

# 重命名分支
git branch -M 旧名 新名

删除分支

# 删除分支
$ git branch -d 分支名
# -D 强制删除

创建分支

$ git branch 分支名
# 新建一个分支,并切换到该分支
git checkout -b 本地分支名

设置远程追踪关联

# 新建一个分支,并切换到该分支 并关联
git checkout -b 本地分支名 [关联的远程仓库/远程分支]

# 另一种设置关联(跟踪)的方法 
git branch -u 远程仓库/远程分支 本地分支
# 本地分支留空则默认当前分支
# 等价于 git branch --set-upstream-to 远程仓库名/远程分支名 本地分支

# 撤销映射关系 git branch --unset-upstream

切换分支

# checkout 改变的是HEAD指针
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -
# 移动到上一个分支 XX^[n]  (XX为指针名或分支名) n在父结点为多个时有用,用于选择父结点 2为第2个父节点
# 向上移动n步 节点~n  不接数字时等同于^
# 操作符~和^可以进行链式操作

移动分支

$ git branch -f [待移动分支] 目标位置(可为相对位置^/~) 
#  待移动分支默认为当前分支,无分支则移动HEAD

注:对于移动到有tag的节点,会操作HEAD分离,或是移动失败

合并分支

# 合并指定分支到当前分支
git merge [branch]
git merge -m <msg> <commit>
git merge --abort
git merge --continue

处理合并冲突
git ls-files -s 命令输出的第二列的值如果为 0 表示对应的文件没有冲突,合并成功;如果不为0,则表示产生了合并的冲突。
其中具体的值对应的意义是:
1表示两个用户之前一个共同版本的对应文件内容;
2表示当前用户对应的文件版本;
3表示合并后的文件对应的远程版本。

git show :n:filename 查看对应文件的对应版本的内容

复制与重排

cherry-pick
$ git cherry-pick 需要复制的结点
# 需要事先知道哈希值
# 会按照提供节点的顺序,复制到本分支下
rebase -i

”-i“ 是指交互模式

$ git rebase -i 重排接入的结点
# 之后会进入编辑,设置排列顺序和删除结点
# 可选该分支上的节点

交互编辑页面标注含义:

pick保留该commit(缩写:p)
reword保留该commit,修改该commit的注释(缩写:r)
edit保留该commit,** 修改该提交(不仅仅修改注释) **(缩写:e)
squash将该commit 和前一个commit合并 (可编辑合并后的提交信息)(缩写:s)
fixup将该commit和前一个commit合并,不保留该提交的注释信息(缩写:f)
exec执行shell命令(缩写:x)
drop丢弃该commit(缩写:d)

工作区缓存

# 缓存工作区内容
git stash [save "备注的内容"]
# 应用缓存 不删除缓存
git stash apply [stash@{1}]
# 应用并删除缓存 
git stash pop [stash@{n}] # 如 js 数组调用 pop 移除最后一个并返回其值

# 删除最近的一次stash  
git stash drop
# 删除stash的所有记录  
git stash clear  

# 查看缓存列表
git stash list

Git标签 tag 一般用来锁定版本

列出版本:

git tag
# 列出所有版本
git tag 标签名/版本号
# 简明标签
git tag 版本号 指向结点
# 对指定提交添加标签
git tag -a 版本号 -m "描述信息"
# 带描述信息的提交
git show 版本号
# 展示版本的详细信息

将标签信息推送到远程仓库

git push origin 版本号
git push origin --tags

删除标签

git tag -d 版本号
# 结果推送到远端

同步标签

git push origin --delete <tagname>
# git push origin :refs/tags/v1.4-lw
git fetch -p 
# 删除本地多出的标签与远程标签保持一致
git describe [指向结点]
# 默认 为HEAD
# 描述与最近tag的位置关系 “tag名_相距提交数_当前结点的哈希值”

其他

git restore 指令使得在工作空间但是不在暂存区的文件撤销更改(内容恢复到没修改之前的状态)
git restore --staged 的作用是将暂存区的文件从暂存区撤出,但不会更改文件的内容。
git switch -c <branch> --track <remote>/<branch> 创建并切换分支并关联远程分支 (分离checkout 的功能)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值