Git常用命令大全

基础概念

版本控制:Git 让开发者能够跟踪和管理代码的历史版本。每当你提交更新时,Git 都会保存一个“快照”,记录文件的变化。这使得你可以随时回到过去的任何一个版本,查看或者恢复代码。

跟踪变更:Git 提供了强大的工具来查看项目的历史变更,比如 git log 命令可以展示详细的提交历史,git diff 可以显示文件之间的差异。

分布式系统:Git 是一个分布式版本控制系统,这意味着每个开发者的电脑上都有整个项目的完整历史记录的副本。这不仅使得操作更快(因为大部分操作都在本地完成),而且即使远程服务器出现问题,每个副本也可以用作数据恢复的备份。


流程图

3大区域:

工作区(原区+未暂存区) & 暂存区 & 本地库

原区 & 未暂存区 :

——>修改文件 

<——git checkout 或者使用git restore

未暂存区 & 暂存区

——>git add

<——git reset  或者使用git restore

暂存区 & 本地库

——>git commit

<——git reset --soft

本地库——>未暂存区:git reset --mixed

本地库——>原区:git reset --hard

暂存区——>原区:git checkout head

未暂存区——>本地库:git commit --

配置相关


git init

git config --global https.sslverify false // 关闭SSL验证

git config --global http.proxy 'http://具体的服务器地址:端口' // 将http代理到指定服务器
git config --global https.proxy 'https://具体的服务器地址:端口' // 将https代理到指定服务器
git config --global --list // 显示git的全局配置

git config --global --unset http.proxy // 取消http和https的代理
git config --global --unset https.proxy 

git config --global core.editor [emacs | vim] // 修改编辑器,emacs和vim 二选一

git config --list --show-origin // 查看git配置项及所在文件

// --system影响的是系统配置 --global影响用户配置 --local影响代码仓配置

help

git help <verb> # verb是可选的参数,填充具体的操作指令
git <verb> --help  # 跟上面的命令一样,都会跳转到一个页面
man git-<verb>


可服务性

新增简易命令版

alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gb='git branch -vv'
alias gr='git remote -v'

# alias gl="git -c 'pager.log=true' -c 'core.pager=less' log --decorate --graph --oneline"
alias gll="git log --pretty=format:'%C(yellow)%h %Cgreen%ad %Creset%s' --date=short"
alias gl='gll -n 20'
alias gllm='gll --merges'
alias glm='gl --merges'

alias gd='git diff'
alias gdc='git diff --cached'
git switch <new-branch-name> # 切换分支
 
git switch -c <new-branch-name> # 创建分支并切换
 
git switch --discard-changes <branch-name> # 切换分支,丢弃当前工作区的修改

基于远端分支新拉本地分支并上传

git checkout 远端主分支A
git checkout -b 自己本地新分支B
修改后保存
git push -u origin 自己本地新分支B


checkout

主要用于切换分支 or 恢复工作目录中的文件,适用于在不同的开发线路间进行跳转和版本回溯

git checkout branch-name # 切换到一个已经存在的分支
 
git checkout -b new-branch-name # 创建并切换到新分支
 
git checkout -- filename # 恢复工作目录中的文件到最后一次提交的状态
 
git checkout commit-hash -- filename # 检出一个文件的旧版本

而从Git 2.23开始,git checkout 的部分功能被拆到了新的命令 git switch 和 git restore中,是的命令的用途更加细分明确

git switch 用于切换分支

git restore 用于恢复文件

git switch <new-branch-name> # 切换分支
 
git switch -c <new-branch-name> # 创建分支并切换
 
git switch --discard-changes <branch-name> # 切换分支,丢弃当前工作区的修改


HEAD

在Git中,HEAD指针表示当前的工作分支的最新提交,分离HEAD指针即切换到不同的提交或分支,或者在提交历史中向前或向后移动

git checkout HEAD^ # 将HEAD回退一个 commit

git checkout HEAD~n # 将 HEAD 回退多个 commit

分离HEAD

检出之前的提交

git checkout commit-id file-path # 将某个文件检出到 commit-id 版本
git checkout commit-id #


回退修改 restore

git restore 用于撤销对工作目录和暂存区(index)中文件的更改的git命令

撤销工作区中的更改,如果你在工作区中对文件做了修改后想要撤销这些更改,使得文件恢复到最后一次提交的状态

git restore <file>
git restore . # 撤销所有工作区改动

# 撤销暂存的更改
git restore --staged <file>


reset

用于重设当前分支的头指针到另外一个提交(commit),用于撤销提交

将HEAD和暂存区重置到指定的提交,但不影响工作目录 —— 这意味着会更改回到工作目录,你可以重新决定是否重新暂存和提交这些更改

git reset <file> # 撤销暂存区中的文件修改
 
git reset --soft <commit_hash> # 将 HEAD 移动到指定的提交,工作目录和暂存区现有内容不变。(改动会保留在暂存区)
 
git reset [--mixed] <commit_hash> # 将 HEAD 和索引重置到指定的 <commit>,工作目录现有内容不变。(改动保留在工作区)。
 
git reset --hard <commit_hash> # 将 HEAD、索引和工作目录都重置到指定的 <commit>。这意味着所有当前的更改都将被清除,工作目录将反映指定提交的内容。

tips: 结合 reset 和 commit,实现清理提交记录。相比较 rebase -i,这种方式更简单,不需要冲突处理,同时可以对暂存区中的改动做进一步处理。


暂存修改

git stash允许临时保存当前工作目录和暂存区的更改,以便可以切换到其他分支处理其他事务,然后再回来

git stash # 将已修改和已暂存的改动保存起来,注意后面不跟文件

git stash list # 查看stash列表

git stash pop # 将最近的stash弹出,并应用

git stash apply # 只应用,不弹出 / 对应git stash pop
git stash apply stash@{n}

git stash drop # 删除最近的stash
git stash drop stash@{n} # 删除指定stash


rebase相关

rebase能将另外一个分支的修改先插队插入到当前分支

merge会有一条merge的commit记录,而rebase没有。

并且rebase的提交是线性的,非常干净。

且常用于本地开发完成后,使用rebase -i整理提交记录。

注意:rebase会修改提交记录(commit id),因此不要在公共的分支上使用rebase,否则会导致大量冲突。

# 主要用于显示当前分支的名称
git branch --show-current --track

# 真正查看上游分支
git rev-parse --abbrev-ref --symbolic-full-name @{u}

# 设置上游分支
git branch --set-upstream-to=origin/上游分支

# 开始rebase
git rebase

# 处理冲突后
git add file
git rebase --continue


worktree

worktree用于在Git中管理多个工作目录,允许在同一仓库中同时检出多个分支到不同目录

即worktree中的各个分支可以“共用”,用于同时处理多个分支

git worktree add <path> <branch> # 创建额外工作目录,path为新的工作目录

git worktree list # 列出所有活跃的工作目录

git worktree remove <path> # 删除工作目录

添加工作树并且merge

git worktree add ../分支名 origin/分支名
# 在当前Git仓库中添加一个新的工作树(worktree),并将其与指定的远程分支关联起来
git merge 分支名


git更新子仓

git clone -b 指定分支 代码仓地址
git submodule update --init --recursive // 更新子仓


tag处理

用于给特定的提交创建标签,以便标记软件版本的重要节点(如发布和里程碑)

提供了2种类型的标签:轻量标签(lightweight)和带注释的标签(annotated)

git tag <tagname>
git tag <tagname> <commit-hash>

git tag -a <tagname> -m "your message"
git tag -a <tagname> <commit-hash> -m "your message"

git tag # 列出所有标签
git show <tagname> # 查看标签详细信息

git tag -d <tagname> # 删除本地标签
git push --delete origin <tagname> # 删除本地标签,并推送到远程仓库

git push origin <tagname> # 推送特定标签的远程
git push origin --tags # 推送所有标签

End

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Python Git常用命令大全Git是现代化的版本控制系统,常被用于软件开发,协作和管理。它允许在开发过程中创建和管理不同的版本,跟踪文件的更改,以及支持团队合作。Python则是一种广泛应用于开发Web应用程序以及数据科学和人工智能领域的高级编程语言。在使用Git时,Python的代码可以与Git进行集成。这里是Python Git常用命令的大全: 1. git init:初始化一个新的 Git 仓库。 2. git clone:从现有的 Git 仓库克隆项目,可以是本地仓库或远端仓库。 3. git add:将文件添加到 Git 仓库中。git add . 可以添加所有更改。 4. git commit:将所有已添加的文件提交到本地 Git 仓库中。 5. git status:查看当前工作目录中 Git 仓库的状态。 6. git log:查看提交记录。 7. git push:将本地 Git 仓库的更改推送到远端仓库。 8. git pull:将远端 Git 仓库的更改拉到本地仓库。 9. git branch:创建新的分支。 10. git checkout:切换分支。 11. git merge:将一个分支的更改合并到另一个分支。 12. git revert:撤销一个提交。 13. git rebase:将一个分支的修改合并到当前分支。 14. git config:配置 Git。 15. git remote:管理远端仓库。 这是Python Git常用命令的大部分命令,但这并不是全部。在使用Git和Python时,这些命令应该是最为重要的。无论是在个人项目中还是团队合作中,这些命令会让你更加高效地使用Git,并保护你的代码免遭不可挽回地灾难。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-R00kie-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值