git 常用命令

1、删除远程库

使用命令git remote rm name (解除了本地与远程的绑定关系,并不是物理上删除了远程库)
使用前建议使用 git remote -v 查看远程库信息

2、分支管理

查看分支

使用命令git branch 可以查看所有分支,当前分支前面会有(*),操作如下:

$ git branch
  dev
  hotfix
* master

创建分支

使用命令git branch branch-name可以用来创建一条分支,操作如下:

$ git branch feature
$ git branch
  dev
  feature     // 新创建分支
  hotfix
* master

切换分支

使用命令git checkout branch-name或者git switch -c branch-name (新版本git提供) 可以用来切换分支,操作如下:

$ git checkout dev
Switched to branch 'dev'
$ git branch 
* dev
  feature
  hotfix
  master

创建并切换分支

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch  'dev'

使用命令git checkout -b branch-name 或者 git switch -c branch-name (新版本的git提供)

查看提交历史

1)git log ---- 按时间顺序列出所有的提交
在这里插入图片描述
2) git log -p或者 git log --patch :会显示每次提交所引入的差异,也可以限制显示的日志条目数量,使用 -2选项来只显示最近的两次提交
在这里插入图片描述
3) git log --stat :在每次提交的下面列出所有被修改过的文件、有多少文件被修改以及被修改过的文件哪些行被添加或是移除
![](https://img-blog.csdnimg.cn/20210514164356961.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hKYXlfQ2hvdQ==,size_16,color_FFFFFF,t_70
4) git log --graph --pretty=oneline --abbrev-commit
--graph:在日志旁以 ASCII 图形显示分支合并图。
在这里插入图片描述

bug分支

git stash:将当前工作现场“储藏”起来,等bug修复之后恢复现场继续工作(在git stash之前一定要用git status确认没有Untracked files(未被追踪的文件(没有git add过))
1)例如:你正在dev分支上开发,发现之前完成某部分的项目存在bug,这时候你dev分支上还没有完成的代码还没有办法提交,这时候你可以使用git stash先将当前dev上开发的代码先隐藏起来,去修改bug

$ git stash
Saved working directory and index state WIP on dev: e843901 graph

现在使用git status查看工作区,就是干净的

2)这时候你需要的bug已经修改完成,已经提交完成了,这时候你需要找到你刚才‘隐藏’的代码继续开发,这时候你怎么找到刚才git stash隐藏的代码呢?,不要着急,Git提供了git stash list命令,可以解决你的疑惑,咱们接着往下看:

$ git stash list
stash@{0}: WIP on dev: e843901 graph

3)恢复工作现场
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
另一种方式是用git stash pop,恢复的同时把stash内容也删了(看不见stash@{0}: WIP on dev: e843901 graph
可以多次stash,恢复的时候,先用git stash list 查看,然后恢复指定的stash,使用命令

$ git stash apply stash@{0} (使用git stash drop stash@{0}删除stash内容)
或者
$ git stash pop stash@{0}

将指定的提交应用到其他分支

git cherry-pick <分支名> :将该分支的最近一次提交应用到当前分支

查看工作区的状态

使用git status命令可以查看工作区的状态,如果git status告诉你有文件修改过,可以使用git diff查看修改内容
在这里插入图片描述
在这里插入图片描述

3、版本回退

在Git中,HEAD表示当前版本,也就是最新提交的,上一个版本是HEAD^,上上个版本是HEAD^^,往上100个版本可以写成HEAD~100
现在,我们要把当前版本回退到上一个版本,可以使用命令:git reset --hard HEAD^

如果想要回到未来的某个版本,怎么办?
如果命令窗口没有被关闭,就可以往上找,找到你想要回到的版本的commit_id,然后就可以使用命令:
git reset --hard <commit_id>(版本号没必要写全,前几位就可以了)

现在如果你版本回退到了某个版本,关闭了电脑下班回家,第二天早上你后悔了,命令窗口已经关闭,你找不到commit_id了怎么办?
这时候需要冷静,不要慌,吃口(后悔)药,Git提供了git reflog用来记录你的每一次命令

在这里插入图片描述

4、撤销修改

git checkout -- <filename>可以丢弃工作区的修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
1)readme.txt文件自修改后没有放到暂存区(也就是还没有git add过),现在,撤销修改就回到了和版本库一摸一样状态;
2)readme.txt已经添加到暂存区了,这时又作了修改,现在,撤销修改就回到了添加到暂存区的状态
总之,就是让readme.txt文件回到最近一次git commit或git add时的状态

如果该文件已经git add暂存区了,但是并没有git commit提交:
Git提供了命令:git reset HEAD <filename> 可以把暂存区的修改撤销掉,重新放回到工作区

5、删除文件

1)如果确实需要从版本库中删除文件,可以使用命令git rm <filename>,然后git commit
2)如果删错了文件,手动不小心删除了某些文件,这时候版本库中还存在这些文件,可以使用命令git checkout -- <filename> 还原

注意⚠️:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是需要小心,你只能恢复文件到最新版本,你会丢失最后一次提交后你修改的内容

6、多人协作的工作模式

1)首先,可以试图用git push origin <branch-name>推送自己的修改
2)如果推送失败,则因为远程分支比你本地的分支更新,需要先使用git pull命令试图合并
3)如果合并有冲突,则解决冲突后在本地提交
4)如何没有冲突或者解决冲突后,再用git push origin <branch-name> 推送就能成功
注:如果git pull 提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令
git branch --set-upstream-to <branch-name> origin/<branch-name>

小结:在本地创建与远程分支对应的分支,使用命令:git checkout -b branch-name origin/branch-name

7、区别理解

git merge origin master :将origin merge 到master上
git merge origin/master :将origin上的 master分支 merge到当前分支
git push origin dev:master :将local repository(本地仓库)中名字为dev的分支的内容推送到romote repository(远程存储库)中名称为master的分支

<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`避免合并提交
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值