git常用命令

本文详细介绍Git的高级操作,包括撤销修改、分支管理、标签使用、远程仓库同步等,适合有一定Git基础的开发者深入学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、git 工作空间结构

二、常见撤销操作

git rm -cached file

总暂存区中删除file文件

git checkout <filename>

从暂存区回复文件filename

git reset (-mixed)head~n 

回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件(未提交的也 
不受影响) 

git reset -hard head~n

回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不受影响) 

git reset -soft head~n

回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换

三、git常用命令

git push 从本地仓库更新至远程仓库
修改本地用户名:git config --global user.name "xxxxx"(双引号可有可无)
修改本地邮箱:git config --global user.email "xxxxx@***.com"
查看当前目录配置的服务器地址: git remote -v
查看日志:git log
只查看日志头:git log --pertty=oneline
查看远端的日志:git log origin/master
查看文件区别:git diff fileName
查看所有的操作日志:git reflog
pull远端资源:git pull origin master
push远端资源:git push origin master
查看本地分支:git branch
查看远端分支:git branch -r
查看本地和远端的分支:git branch -a
查看远程库信息:git remote
查看远程库详细信息:git remote -v
查看本地与远端分支的对应关系:git branch -vv
创建本地分支:git branch test
删除本地文件:git rm fileName
切换分支:git checkout test
创建并切换新分支:git checkout -b test(以当前分支为基础,构建一个新的分支并切换)
删除本地分支:git branch -d test
强制删除本地分支:git branch -D test
设置本地当前分支与远程分支的对应关系:git branch --set-upstream-to=origin/test  
设置本地某分支与远程分支的对应关系: git branch --set-upstream master origin/test (本地的master分支与远端test分支建立关联)
依据远端的分支,构建本地的分支:git checkout chenyingyue (远端存在chenyingyue分支,该命令会在本地构建一个与远端chenyingyue分支关联的本地分支)
git push
push命令:git push <远程主机名> <本地分支名>:<远程分支名>
将当前分支推送到远程的同名分支:git push origin (将本地的分支推送到远端的同名分支上)
将当前分支推送到远程某个分支:git push origin master (将本地分支推送到master,若不存在则创建)
删除远程分支:git push origin :master  等同于 git push origin --delete master
强制推送:git push -f ******
git reset
回滚:git reset head^  或者 git reset 哈希编号(分支后退,保留原操作)
撤销工作区的修改:git checkout -- filename(文件回到最近一次git commit或git add时的状态)
撤销暂存区中的内容,放回到暂存区:git reset HEAD filename(把暂存区的修改撤销掉unstage,重新放回工作区,还需要上一步骤,才能恢复文件)
撤销修改,工作区中没有内容:git reset --hard head***
git revert
撤销:git revert head^ 或者 git revert ~1 或者 git revert 哈希号(分支继续前进,只是操作是与回退的操作完全相反)
git pull
pull命令:git pull <远程主机名> <远程分支名>:<本地分支名>(若省略,则表示“将与本地对应的远端分支与本地分支合并”)
git pull origin test:master (取回origin主机的test分支,与本地的master分支合并)
git pull origin test (取回origin主机的test分支,与本地的当前分支合并)
等同于先做git fetch,再做git merge
git fetch origin
git merge origin/test
强制pull:先执行:git fetch --all  然后执行:git reset --hard origin/master
git merge
将某分支与当前分支合并:git merge test (将test分支上的内容合并到当前所处的分支,只要A分支的修改没有commit,即使已经add,则切换新的分支后,所有修改将会被同步到新分支,原来的A分支则恢复原来状态)
合并时添加分支信息:git merge --no-ff -m "merge info" test(可以在merge时分支历史上看出分支信息)
git stash
暂存当前分支的内容:git stash (不同于add、或者commit,只是暂存)
查看暂存的内容:git stash list
一步恢复暂存的内容:git stash pop
两步恢复暂存的内容:git stash apply;git stash drop
git fetch
命令:git fetch <远程主机名> <分支名>
git clone
克隆命令:git clone <版本库的网址> <本地目录名>
在本地建立并切换到与远端test分支同名的分支:git checkout -b test origin/test
git tag
标签命令:git tag <name>
在当前新建一个标签:git tag v1.0
在过去的某个commit上标注标签:git tag v0.9 commitID
git tag -a <tagname> -m "blablabla..."可以指定标签信息
git tag -s <tagname> -m "blablabla..."可以用PGP签名标签
查看标签信息:git tag
删除标签:git tag -d tagName
命令git push origin <tagname>可以推送一个本地标签
命令git push origin --tags可以推送全部未推送过的本地标签
命令git tag -d <tagname>可以删除一个本地标签
命令git push origin :refs/tags/<tagname>可以删除一个远程标签
git add --file :  将某个文件添加到git
git rm -r --cached package/ : 将某个文件夹从工作区移出
git rm --cached package/ : 将某个文件从工作区移出
将某个git版本库托管到另一个版本库,同时保留以往的所有记录
          1). 从原地址克隆一份裸版本库,比如原本托管于 GitHub。
          git clone --bare git://github.com/xxxxx.git
          –bare 创建的克隆版本库都不包含工作区,直接就是版本库的内容,这样的版本库称为裸版本库。
          镜像推送
          2). 然后到新的 Git 服务器上创建一个新项目,比如 GitCafe。
          3). 以镜像推送的方式上传代码到 GitCafe 服务器上。
          cd project.git
          git push --mirror git@xxxxgit
          — mirror 克隆出来的裸版本对上游版本库进行了注册,这样可以在裸版本库中使用git fetch命令和上游版本库进行持续同步。
          4). 删除本地代码
          cd ..
          rm -rf project.git
          5). 到新服务器 GitCafe 上找到 Clone 地址,直接 Clone 到本地就可以了。
          git clone git@gitcafexxt.git
          这种方式可以保留原版本库中的所有内容

git log 查看所有提交历史

git reflog 查看所有分支操作历史

git log有许多选项,-p选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新:

<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、付费专栏及课程。

余额充值