Git常用指令

目录

一 提交代码到远程

二.git log

三.git cherry-pick

四.git branch -vv

五.git clean -dfx

六.git clean -ndx  

七.定期同步上游分支

八.误操作后恢复,若合并或变基出错,可通过 git reflog 找回之前的状态:

九.git stash暂存本地修改

十.查看git add后文件差异

十一.图解


一 提交代码到远程

步骤 1:创建新分支
git checkout -b new-feature-branch

步骤 2:更新到最新节点
a # 获取远程最新分支的更新
git fetch origin
b # 合并最新的远程分支到新分支
git merge origin/main(指定分支)

步骤 3:推送代码到远程分支
git push origin new-feature-branch:main


步骤 4:删除本地新分支(可选)
git branch -d new-feature-branch


二.git log


1.log格式化
git log --oneline --format="%h %an: %s"
%h:表示简短的提交哈希值。
%an:代表提交作者的姓名。
%s:是提交说明
1234567 John Doe: Update README file

2.搜索log
git log --oneline | grep "Update"

3.显示文件更改信息
git log -p

4.使用 -n 选项可以指定显示的提交数量,例如只显示最近的 3 次提交:
git log -n 3

5.图形化显示分支历史
git log --graph --oneline

6.按日期筛选
git log --since="2024-04-01" --until="2024-04-15"

7.按作者筛选
git log --author="John Doe"

8.根据hash值查看某一条提交
git log -p 4c937a27838

9.查看其它分支log
git log <分支名>

三.git cherry-pick


1.合并某一次提交
git log <分支名> 获取某次提交得hash值
git cherry-pick 123456789abcdef(某次提交得hash值)
可能遇到的情况及解决办法
冲突解决:如果在合并过程中出现冲突,Git 会暂停操作并提示你解决冲突。你需要手动编辑冲突文件,然后使用 git add 标记冲突已解决,最后使用 git cherry-pick --continue 继续合并操作。
放弃合并:若你想放弃这次合并操作,可以使用 git cherry-pick --abort 命令。

四.git branch -vv


git branch -vv 命令可以显示本地分支和对应的远程跟踪分支的详细信息,包括提交记录的差异。

五.git reset --soft HEAD~
HEAD~1 表示撤销最近的一次提交,若要撤销更早的提交,可调整数字,例如 HEAD~2 撤销最近的两次提交。
git reset --soft HEAD~1

五.git clean -dfx


-d 删除未被跟踪的目录(包括空目录)。若不加此参数,仅删除文件。
-f 强制删除(force
-x 删除所有未被跟踪的文件,包括被 .gitignore 忽略的文件。警告:此参数会删除 .gitignore 中指定的文件(如编译产物、临时文件)
用于彻底清理工作区,移除未被跟踪(untracked)的文件和目录

六.git clean -ndx  


 预览会被删除的文件和目录

七.定期同步上游分支


在开发 feature 分支期间,定期将 main 分支的更新合并到 feature:
git checkout feature
git merge main  

八.误操作后恢复,若合并或变基出错,可通过 git reflog 找回之前的状态:


git reflog  # 查看操作历史
git reset --hard HEAD@{n}  # 回退到第 n 个操作前的状态

九.git stash暂存本地修改


git stash push -m "优化配置修改" frameworks/base/packages/SystemUI 暂存本地路径未提交的修改
git stash list   查看暂存列表
git stash apply stash@{1} 恢复指定暂存(如stash@{1}),但保留在栈中

  • 保存:git stash save "描述"(加 -u 包含未跟踪文件)
  • 查看:git stash list / git stash show -p
  • 恢复:git stash pop(推荐)或 git stash apply
  • 删除:git stash drop / git stash clear

十.查看git add后文件差异

git diff --staged
# 或使用同义词 --cached
git diff --cached

十一.图解

### Git 常用指令汇总 以下是基于提供的参考资料以及专业知识整理的 Git 常用命令列表: #### 初始化与配置 - **初始化仓库**: 使用 `git init` 可以在一个工作目录中初始化一个新的 Git 仓库[^1]。 - **全局用户名和邮箱设置**: ```bash git config --global user.name "Your Name" git config --global user.email "[email protected]" ``` #### 添加文件到暂存区 - 将单个文件添加到暂存区: ```bash git add filename ``` - 将多个文件添加到暂存区: ```bash git add *.extension ``` - 将所有更改的文件一次性添加到暂存区: ```bash git add . ``` #### 提交更改 - 提交暂存区中的更改并附带提交信息: ```bash git commit -m "commit message" ``` - 如果有已跟踪文件被修改过,则可以跳过暂存直接提交: ```bash git commit -am "commit message" ``` #### 查看状态与日志 - 查看当前工作树的状态,包括哪些文件已被修改但尚未提交: ```bash git status ``` - 显示所有的提交记录及其元数据: ```bash git log ``` - 更简洁的日志显示方式: ```bash git log --oneline ``` #### 分支管理 - 列出所有分支: ```bash git branch ``` - 创建新分支: ```bash git branch new_branch_name ``` - 切换至另一个分支: ```bash git checkout existing_branch_name ``` - 合并某个分支到当前分支: ```bash git merge source_branch_name ``` #### 远程操作 - 查看远程仓库的信息: ```bash git remote -v ``` - 添加一个新的远程仓库: ```bash git remote add shortname url ``` - 获取最新的远程分支更新: ```bash git fetch origin ``` - 将本地提交推送到远程仓库: ```bash git push origin master ``` #### 标签管理 - 查看已有标签: ```bash git tag ``` - 创建轻量级标签: ```bash git tag v1.0 ``` - 创建带有注解的标签: ```bash git tag -a v1.0 -m "Version 1 release" commit_hash ``` - 推送标签到远程仓库: ```bash git push origin v1.0 ``` - 删除本地标签: ```bash git tag -d v1.0 ``` - 删除远程标签: ```bash git push origin :refs/tags/v1.0 ``` #### 撤销操作 - 撤销最后一次提交但仍保留代码改动: ```bash git reset HEAD~1 ``` - 撤销某一次特定提交的历史记录而不影响后续提交: ```bash git revert commit_id ``` - 若想重置整个项目回到某一历史节点(危险操作),可使用硬重置: ```bash git reset --hard commit_id ``` #### 其他实用技巧 - 当前未保存的工作进度可以通过 stash 功能临时存储起来以便切换上下文环境: ```bash git stash save "message" git stash pop # 应用最新stash并移除它 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

s_nshine

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

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

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

打赏作者

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

抵扣说明:

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

余额充值