git常用命令
Git常用命令
基本命令
- git clone project #下载project到本地
- git checkout -b B1 origin/B1 #切换到B1分支,并跟踪远程分支B1
- git status #查看本地修改情况
- git add test #将修改后的test加入到git版本管理中
- git commit -m "info" #本地提交
- git push #提交到远程仓库
- git pull #如果远程仓库有更新,需要首先pull,然后解决冲突后,才能push
高级用法
- git rm --cached xxx #删除git add添加的名为xxx文件
- git log # 查看项目提交日志
- git show commitId #查看commitId版本提交内容的详细信息,不加参数默认为最新提交版本
- git blame xx #查看文件xx详细修改情况
- git reset #回退到某个版本
- git log --oneline --graph --decorate #查看当前分支checkout自哪个分支
持续更新中
常用组合用法
(1)为开源项目贡献源码(以github为例)
- 注册github账户
- fork目标账户到自己的仓库下(项目右上角的fork按钮)
- 克隆到本地,例如:
git clone https://github.com/warm3snow/GitTest.git
- 修改项目内容,并提交. 例如:
$ echo "hello, I'm XXX" >> test
$ git add test
$ git commit -m "add XXX to test"
$ git push
在原项目中添加Pull/Request,等待审查和合并。(如果不打算贡献源码,也可以省略此步骤)
(2)查看某个指定文件的提交历史记录
查看test文件的提交历史
$ git log --pretty=oneline test
09780e981e8f1912b1e56ce62da409331120f501 (HEAD -> master, origin/master) add billhan2016 to test
60096153cadd3d67284e70b729d05a64a67d5c2c add warm3snow to test
根据后面的commit的提示信息,我们找到前面的版本号(每行前面的一串数字)
$ git show 60096153cadd3d67284e70b729d05a64a67d5c2c test
commit 60096153cadd3d67284e70b729d05a64a67d5c2c
Author: xxx <xxx@xxx.com>
Date: Sun Sep 30 16:35:43 2018 +0800
add warm3snow to test
diff --git a/test b/test
new file mode 100644
index 0000000..ef8745c
--- /dev/null
+++ b/test
@@ -0,0 +1 @@
+hello, I'm warm3snow
更细粒度的查看文件修改信息可以
$ git blame test
60096153 (hxy 2018-09-30 16:35:43 +0800 1) hello, I'm warm3snow
09780e98 (hxy 2018-09-30 16:40:55 +0800 2) hello, I'm billhan2016
(END)
### (3)版本回退, 分支删除
```sh
git reset --hard <commitid> #删除本地修改并回退到commitid
git reset --soft <commitid> #删除提交,并保留修改
git reset --hard HEAD~1; git push --force #远程分支回退到上一个版本
git push origin --delete <branch_name> #删除远程分支
git branch -D <branch_name> #删除本地分支
(4) 查看代码变动
# 查看任意两个版本之间的改动:
$ git diff 版本号码1 版本号码2
#比较两个版本号码的src 文件夹的差异
$ git diff 版本号码1 版本号码2 src
=====持续更新中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?