likes
comments
collection
share

记录工作中鲜少记得的git操作

作者站长头像
站长
· 阅读数 32

前言

关于git,我很多时候使用的是小乌龟。所谓工欲善其事必先利其器,一个好的工具,会使工作效率事半功倍。但是工具再好,从事it这行,终究是知其然并知其所以然,否则永远只是个技术搬运工。想清楚之后,就有意识的看看git book,学习并使用git命令,工作中也记录一些命令。以下是工作中比较常用但又比较冷门的git命令

git日志导出

这个常用于写工作周报的时候,我一般很难清晰的记得一周干了啥,所以每次都需要去看git日志。后来仔细想了下,应该有个命令可以直接导出git日志,所以就去git book上面找了下。

  • --no-merges:忽略分支合并日志
  • --reverse:按照时间升序排序
  • --since:几天前,或者日志开始时间(6天前)
  • --committer:提交者(author)
  • 一般执行之后,就会在根目录中生成gitlog.txt文件
  • 如果gitlog.txt 已存在,会覆盖里面内容
git log --pretty=format:"%s" --since="6 days ago"   --committer="author" --no-merges --reverse > gitlog.txt

不想覆盖使用>>

git log --pretty=format:"%s" --since="6 days ago"   --committer="author" --no-merges --reverse >> gitlog.txt

git日志,根据特定格式导出,这个我不怎么常用,但是用到过,所以记录以下

git log --committer="author" --after="2023-3-1" --before="2023-5-1" --pretty=format:"%an %ad : %s" --date=short --no-merges --reverse

以上是导出2023-03-01——2023-05-01之前的git日志,用【提交者 修订日期:提交说明】的方式

git log --pretty=format 常用的选项

选项说明
%H提交的完整哈希值
%h提交的简写哈希值
%T树的完整哈希值
%t树的简写哈希值
%P父提交的完整哈希值
%p父提交的简写哈希值
%an作者名字
%ae作者的电子邮件地址
%ad作者修订日期(可以用 --date=选项 来定制格式)
%ar作者修订日期,按多久以前的方式显示
%cn提交者的名字
%ce提交者的电子邮件地址
%cd提交日期
%cr提交日期(距今多长时间)
%s提交说明

合并posture的某次提交到dev分支上

很多时候需要合并提交,但是又不需要合并所有提交,所以就不能使用git pullgit merge origin/xxxgit push。于是我有借助了度娘和git book的知识库,主要是获取commit id,然后git cherry-pick commit-id

# 切换到posture分支上
git checkout posture

# 查看日志
git log

查询到需要合并分支的commit id: 13f9ee9c3437ba12f078afd8ff30d5335d863889

复制后面那串sha-1码(13f9ee9c3437ba12f078afd8ff30d5335d863889)

# 切换到dev分支
git checkout dev

# 先拉取信息,更新到最新信息
git pull

# 合并某次提交
git cherry-pick 13f9ee9c3437ba12f078afd8ff30d5335d863889

# 推送到远端
git push origin dev

题外之话

之前也踩过坑,当我想要合并某个分支的时候,发现push没有成功,最后还是很合并了所有代码。所以还是要注意看git的报错信息,和看下merge、push是否成功。

基于dev分支创建test分支

当前分支dev

主要是基于本地dev的代码创建test分支

git checkout -b test

git push origin test

# 跟远程关联
git branch --set-upstream-to=origin/test test

# 合并本地dev
git merge dev

# 查看缓存
git ls-files -c

# 推送到远程
git push

删除分支及远程分支

注意:不能在当前的分支上,需要切换到别的分支上

删除分支localBranchName

# 删除本地分支
git branch -d localBranchName

# 删除远程分支
git push origin --delete remoteBranchName

重命名分支

1.5-timezone重命名为1.5-utcoffset

# 切换到1.5-timezone分支
git checkout 1.5-timezone

# 重命名本地分支
git branch -m 1.5-utcoffset

# 删除远程分支
git push origin --delete 1.5-timezone

# 将上游分支重置为新本地分支的名称
git push origin -u 1.5-utcoffset

# 查看分支及对应的远程分支
git branch -vv

取消代理

# 查看代理
git config --global http.proxy

# 取消代理
git config --global --unset http.proxy

https同理

一般开了vpn之后很容易报这个错,用以上方法可解决

fatal: unable to access 'xxx.git/': Failed to connect to 127.0.0.1 port 7890 after 2069 ms: Couldn't connect to server

其他命令

查看分支当前状态

git status

记录工作中鲜少记得的git操作

从以上输出信息可以看出:有两个文件被修改了,一个文件新增(yarn.lock

添加文件

  • 添加特定文件是add后面跟具体文件名,如git add main.js,获取是一类文件等等,同理
  • 添加所有文件是使用git add *

以下命令是添加所有文件

git add *

记录工作中鲜少记得的git操作

查看分支

这个一般都很常用,虽然没有git pullgit push那么常见,但是俗话说我可以不用,但是不能不知道。git branch-的命令很多,但是我一般常用的就这几种,以下用表格的形式记录下

命令说明
git branch查看本地分支数
git branch -a查看本地及远程分支
git branch -v与git barnch同理,查看本地分支
git branch -vv查看本地及与之对应的远程分支

还有一个就是创建分支的时候比较常用的--创建并切换到该分支上:git checkout -b xxx

记录工作中鲜少记得的git操作

git clone 报错

这个踩坑较少,但是有点子费时我又刚好有点子兴趣,所以记录下子

git clone报错RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)

记录工作中鲜少记得的git操作

git config --global http.version HTTP/1.1

参考链接:stackoverflow.com/questions/5…

然后又报了error:RPC failed; curl 18 transfer closed with outstanding read data remaining

记录工作中鲜少记得的git操作

后面上网查,竟然是因为网慢

这种情况经常发生,我的互联网连接速度很慢,我必须克隆一个相当大的 git 存储库。最常见的问题是连接关闭并且整个克隆被取消。

Cloning into 'large-repository'...

remote: Counting objects: 20248, done.

remote: Compressing objects: 100% (10204/10204), done.

error: RPC failed; curl 18 transfer closed with outstanding read data remaining

fatal: The remote end hung up unexpectedly

fatal: early EOF

fatal: index-pack failed

经过大量的尝试和错误以及大量的“远程端意外挂断”之后,我找到了一种适合我的方法。这个想法是首先进行浅层克隆,然后用其历史记录更新存储库。

$ git clone <http://github.com/large-repository> --depth 1

$ cd large-repository

$ git fetch --unshallow

成功了成功了

记录工作中鲜少记得的git操作

参考链接:stackoverflow.com/questions/3…

转载自:https://juejin.cn/post/7330835892275724329
评论
请登录