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删除本地缓存的分支信息
3. 查看当前代码库所有程序员提交的次数统计
5. git修改上一次提交的commit信息
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本地分支重命名
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. 查看远程仓库信息
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,如下图:
![](/../images/git/git-revert.png)
然后执行下述命令即可:
1 2 3
| git add -A
git commit -m "revert master"
|
接着正常往master上合feature代码即可。