git常用命令

Git工作流与高级特性

摘录自

https://www.jianshu.com/nb/34866270

===============================

工作区Working Directory-->暂存区Stage-->版本库Repository-->远程仓库Remote

Git命令:
#初始化本地仓库
git init

#添加文件到本地仓库
#第一步,add到缓冲区:
git add test.txt
git add test1.txt test2.txt

#第二步,commit到本地仓库:
git commit -m "add test.txt"

查看状态:
git status

查看差异:
git diff

#查看提交历史:
git log


#每一行显示一条提交日志:
git log --pretty=oneline

#图形化展示提交历史:
git log --graph

#删除缓存文件:
git rm --cached <file>

回到上一个提交:
git reset --hard HEAD^
回到上上个提交:
git reset --hard HEAD^^
回到前100个提交的
git reset --hard HEAD~100

使用Commit id来回到提交点:
git reset --hard 36f234a60d858871f040cb0d7ca3e78251df82f7

查看操作历史:
git reflog

撤销操作:
a.修改在工作区但并没有提交到缓冲区:
git checkout -- file

b.修改在缓冲区但并没有commit到本地仓库:
git reset HEAD <file>
然后再:
git checkout -- file

c.修改提交到了本地仓库:
git reset --hard HEAD^


创建已有本地仓库和远程仓库的关联
# 添加远程仓库关联
git remote add origin git@github.com:username/repos.git

# 首次推送 master 分支的全部内容
git push -u origin master

# 后续推送 master 分支的最新更改
git push origin master


从已有远程仓库克隆到本地仓库
# 克隆远程仓库到本地仓库
git clone git@github.com:username/repos.git

# 推送 master 分支的最新更改
git push origin master
=============================

#查看远程仓库名称
git remote

#查看远程仓库详情 : 拉取和推送链接
git remote -v


master 分支用于生产环境部署,dev 分支用于收集开发成果,feature 分支用于开发具体功能分支
#推送本地 master 分支到远程仓库的 master 分支
git push origin master

#推送本地 dev 分支到元层仓库的 dev 分支
git push origin dev

拉取远程仓库上的代码:
a.#下载远程仓库的master分支,这一步只会
#将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态
#并不会改变你本地仓库的状态,所以也就不会更新你的 master分支,自然也不会修改你磁盘上的文件.
git fetch origin master

b.#在通过下面的方法之一来合并本地远程分支到本地仓库
git merge origin/master
git rebase origin/master
git cherry-pick origin/master


a,b两步也可以直接通过pull来进行操作,相当于git fetch和git merge:
#拉取最新版本
git pull


团队协同开发时,不仅平时要定期拉取(git pull),推送到远程仓库前更应
先拉取(git pull)再推送(git push),如出现冲突,解决冲突后再推送.

=======================================
分支

创建分支:
#创建分支dev
git branch dev

#列出分支
git branch

#切换到分支dev
git checkout dev


#创建并切换到dev分支 
git checkout -b dev

#删除dev分支
git branch -d dev

#回到mster后再master上合并dev分支
#快速前进模式
git merge dev

#禁用快速前进模式,采用递归模式
git merge --no-ff dev


git 用 <<<<<<< 标记一个分支冲突开始,======= 标记分支分割线,>>>>>>> 标记另一个分支结束.


草稿:
保存当前工作区的内容到草稿箱:
#工作区更改添加到"草稿箱", 支持多次添加到"草稿箱"
git stash

#列出"草稿箱"内容 
git stash list

#恢复"草稿箱"内容
git stash apply

#删除"草稿箱"内容
git stash drop

#恢复并删除"草稿箱"内容
git stash pop

#恢复|删除指定"草稿箱"内容    
git stash <stash-id>
例如 git stash apply stash@{0}

变基合并rebase;
# 切换到 `snow` 分支
$ git checkout snow

#改变基础版本(父版本)为master,简称"变基"
git rebase master

#切换到master分支下
git checkout master

#改变父版本为 `snow` 分支指向的版本
git rebase snow

总结下来就是两步:
将目标分支上的工作成果转移到到主干分支 : git rebase master
主干分支接收已转移好的目标分支工作成果 : git rebase <branch>


=============================================
里程碑式标签
#创建标签
#方式一: 默认 `HEAD` 指向的版本
git tag v0.0.1

#方式二: 指定 `commit_id` 表示的版本
git tag v0.0.2 f971647

#方式三: 指定 `commit_id` 表示的版本,同时创建标签说明信息
git tag -a v0.0.3 -m "v0.0.3" f971647

#列出标签
git tag

#显示标签
git show v0.0.1

#删除标签
git tag -d v0.0.1

#推送标签
git push origin v0.0.1

#推送全部标签
git push origin --tags

#删除远程标签
#a. 删除本地标签 
git tag -d v0.0.1

#b. 推送删除标签(删除也是推送)
git push origin :refs/tags/v0.0.1

==================================
git配置
# 配置当前项目(`local`)的用户名(`snowdreams1006`)
git config --local user.name "snowdreams1006"

# 配置当前项目(`local`)的邮箱(`snowdreams1006@163.com`)
git config --local user.email "snowdreams1006@163.com"

# 查看默认全部配置: `local>global>system`
git config --list

# 查看当前项目配置,等同于 `.git/config` 文件
git config --local --list

# 查看当前用户配置,等同于 `~/.gitconfig` 文件 或 `~/.config/git/config` 文件
git config --global --list

# 查看当前系统配置,等同于 `/etc/gitconfig` 文件
git config --system --list

通过alias取别名
# `git checkout` 缩写成 `git co`
git config --global alias.co checkout

# `git commit` 缩写成 `git ci`
git config --global alias.ci commit

# `git branch` 缩写成 `git br`
git config --global alias.br branch

core.editor 编辑器
# `Mac` 系统如下设置: 设置成自己的 `Sublime` 的安装路径
git config --local core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"

# `Windows` 系统如下设置: 设置成自己的 `Sublime` 的安装路径
git config --local core.editor "'F:\Sublime Text 3 sublime text.exe' -n -w"


core.template 提交模板
#查看当前提交模板配置:
git config commit.template

#编辑好提交模板之后进行模板的配置
git config --local commit.template commiit-template.txt
 

<think>我们被要求生成一个关于Git常用命令的汇总列表。根据用户的要求,我们需要提供结构清晰的回答,并尽量保证真实可靠。同时,我们参考了站内引用中提供的Git命令信息。根据引用内容,我们可以整理出以下常用命令:1.基本操作(初始化、添加、提交等)2.分支管理3.远程仓库操作4.标签管理5.历史查看与撤销6.其他实用命令(如删除大文件、清理仓库等)我们将按照这些类别来组织命令。注意:由于引用中提供了一些特定问题的解决方案(如删除大文件),我们也会将其作为实用命令的一部分。另外,注意用户要求使用中文回答,并且行内数学表达式使用$...$格式(但本问题不涉及数学表达式,所以忽略),独立公式使用$$...$$格式(同样不涉及)。同时,在回答末尾生成相关问题。我们开始整理Git常用命令汇总:</think>### Git常用命令汇总 以下是Git常用命令分类整理,帮助您高效管理代码版本: #### 1. 仓库初始化与基础操作 ```bash # 初始化新仓库 $ git init # 克隆远程仓库 $ git clone <远程仓库URL> # 查看当前状态 $ git status # 添加文件到暂存区 $ git add <文件名> # 添加单个文件 $ git add . # 添加所有修改 # 提交更改 $ git commit -m "提交说明" ``` #### 2. 分支管理 ```bash # 创建分支 $ git branch <新分支名> # 切换分支 $ git checkout <分支名> $ git switch <分支名> # Git 2.23+推荐方式 # 创建并切换分支 $ git checkout -b <新分支名> $ git switch -c <新分支名> # 合并分支 $ git merge <要合并的分支名> # 删除分支 $ git branch -d <分支名> # 安全删除 $ git branch -D <分支名> # 强制删除未合并分支 ``` #### 3. 远程仓库操作 ```bash # 添加远程仓库 $ git remote add origin <远程仓库URL> # 查看远程仓库 $ git remote -v # 推送到远程仓库 $ git push -u origin <分支名> # 首次推送 $ git push # 后续推送 # 拉取远程更新 $ git pull origin <分支名> $ git pull --rebase origin <分支名> # 变基式拉取 # 删除远程连接 $ git remote rm origin ``` #### 4. 版本回退与撤销 ```bash # 查看提交历史 $ git log $ git log --oneline # 简洁版日志 # 撤销工作区修改 $ git checkout -- <文件名> # 撤销暂存区文件 $ git reset HEAD <文件名> # 版本回退 $ git reset --hard <commit_id> # 彻底回退 $ git reset --soft <commit_id> # 保留修改 # 恢复删除的文件 $ git restore <文件名> # Git 2.23+ ``` #### 5. 标签管理 ```bash # 查看标签 $ git tag # 创建标签 $ git tag <标签名> # 轻量标签 $ git tag -a v1.0 -m "版本说明" # 附注标签 # 推送标签 $ git push origin <标签名> # 删除标签 $ git tag -d <标签名> # 本地删除 $ git push origin :refs/tags/<标签名> # 远程删除 ``` #### 6. 高级维护 ```bash # 清理历史大文件 $ git filter-branch --force --index-filter \ 'git rm -rf --cached --ignore-unmatch <文件名>' \ --prune-empty --tag-name-filter cat -- --all # 回收存储空间 $ git reflog expire --expire=now --all $ git gc --prune=now # 查看仓库大小 $ git count-objects -vH ``` #### 7. 配置相关 ```bash # 设置用户名/邮箱 $ git config --global user.name "用户名" $ git config --global user.email "邮箱" # 查看配置 $ git config --list # 设置默认编辑器 $ git config --global core.editor vim ``` > **最佳实践提示**: > 1. 频繁提交小变更,保持提交记录清晰 > 2. 使用`.gitignore`文件排除无需版本控制的文件 > 3. 重要分支(如main/prod)设置保护规则 > 4. 推送前先执行`git pull --rebase`避免合并提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值