git日常使用


1. git查看所有tags

1
2
3
4
5
6
7
8
# 查看tags
git ls-remote --tags

# 切换到tag,但切换到的tag仅可以查看,不可修改
git checkout tag名

# 推送所有tag到远程
git push origin --tags

2. git删除本地缓存的分支信息

1
git remote prune origin

3. 查看当前代码库所有程序员提交的次数统计

1
git shortlog -s -n

4. git rebase: https://segmentfault.com/a/1190000007748862

5. git修改上一次提交的commit信息

1
git commit --amend

6. git merge三种形式

(约定 a分支合并b,即:a-> git merge b)

  • fast-forward:git merge时不带任何参数的默认形式,如果a与b具有相同祖先,则会直接将b分支上的提交拷贝到a上,并且不会有merge commit信息(如下);如果是不同祖先,则会有merge commit信息
1
2
3
4
5
6
7
commit dc81cbbfd4115d6344f2196158c0cb2709777639 (HEAD -> m)
Merge: 5d73b333 c4da79f7
Author: leicheng1 <leicheng1@corp.netease.com>
Date: Wed Aug 24 16:38:21 2022

Merge branch 'hot4' into m

  • –no-ff:关闭fast-forward模式,在提交的时候,会创建一个merge的commit信息,然后合并
  • –squash:压缩b分支commit为一次提交,没有merge commit

7. git本地分支重命名

1
git branch -m old new

8. git add后移出该文件

1
2
# 从暂存区移出某个文件
git reset -- filename

9. 统计每个人的代码提交量

1
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

10. 查看远程仓库信息

1
git remote -v

11. git删除分支

1
2
3
4
5
6
7
8
// 删除本地分支(当一个分支被推送并合并到远程分支后,-d 才会本地删除该分支)
git branch -d localBranchName

// 强制删除本地分支
git branch -D localBranchName

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

12. git revert

线上(master分支)需要回滚代码,或者不小心把开发分支的代码合到了master分支,此时优先revert代码。

revert之后,再往master分支合代码,已revert的提交不会出现在master上(相关的文件修改也不会出现),此时需要从maste拉一个新分支branch1,在branch1上重新revert master,

1
git revert -n revert-commit-id

revert-commit-id是master上执行revert操作的commit id,如下图:

然后执行下述命令即可:

1
2
3
git add -A

git commit -m "revert master"

接着正常往master上合feature代码即可。

作者

lei.ch1941

发布于

2024-04-10

更新于

2024-04-10

许可协议

评论