git常用 --笔记

1. 安装及使用
使用git命令
[rocky@www Downloads]$ git clone https://github.com/torch/distro.git ~/torch --recursive
bash: git: command not found... 没装
# 安装
[rocky@www Downloads]$ yum -y install git
Loaded plugins: fastestmirror, langpacks
You need to be root to perform this command. 没有权限
 
sudo提权安装
[rocky@www Downloads]$ sudo yum -y install git
[sudo] password for rocky:
Complete!
[rocky@www Downloads]$ git --version
git version 1.8.3.1
 
2. 回退版本 (回退提交)
$ git reset --hard 9b04712
$ git push origin HEAD --force
#如果是master,开启了 Protected Branches
报错如下
Total 0 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To syrepo.01zhuanche.com:vip/admin-strategy.git
! [remote rejected] HEAD -> master (pre-receive hook declined)
error: failed to push some refs to 'git@syrepo.01zhuanche.com:vip/admin-strategy.git'
 
解决方案:

 

 

 
 
改完 再protect 改回来。
 
git reflog
# 可以根据提交版本号,回退到指定提交
$ git reset --hard b7057a9
$ git push origin HEAD --force
# end
 
3. 从指定提交(commit-id) 拉分支
admin@DESKTOP-VMP46K7 MINGW64 ~/Documents/code3/admin-strategy (master)
$ git checkout -b online-20190409 171186d # online-2019040917 新分支名;1186d 这个是提交版本号
Switched to a new branch 'online-20190409'
从指定tag号拉分支
$ git checkout -b test20210127 git_tag_202101181117 #这个是tag号
 
 
4. git merge 空格问题
git checkout -b merge-test3
git merge car_net_20191204 -Xignore-all-space
手动解决冲突
git add project-name/src/main/java/com/xx/service/impl/XXServiceImpl.java
git add project-name/src/main/java/com/xx/service/impl/XX2ServiceImpl.java
git commit -m "merge"
 
 
5. 根据sha-1码 查提交记录
$ git show 08f6679
commit 08f6679a29b4756737b4d9ffdd50a0fab9e2ebf2
Author: user-name <xx@163.com>
Date: Mon Nov 18 20:24:14 2019 +0800
 
6. 远程版本库
admin@DESKTOP-VMP46K7 MINGW64 ~/Documents/code3/program-name (business_name_2019-12-16)
$ git remote
origin
#
admin@DESKTOP-VMP46K7 MINGW64 ~/Documents/code3/program-name (business_name_2019-12-16)
$ git remote -v ( 等价于git remote --verbose)
origin git@xx.com:xx/program-name.git (fetch)
origin git@xx.com:xx/program-name.git (push)
#
$ git remote show origin
代码地址
* remote origin
Fetch URL: git@xx.com:xx/program-name.git
Push URL: git@xx.com:xx/program-name.git
HEAD branch: master
Remote branches:
5.2.0-yunYingGuanKong tracked
#
 
7. 一段时间内 每人的 提交的 代码行数
admin@DESKTOP-VMP46K7 MINGW64 ~/Documents/code3/program-name
$ git log --author="zhangsan" --since='2020-02-03' --until='2020-02-17' --pretty=tformat: --numstat|gawk '{add += $1; subs += $2; loc += $1 -$2} END {printf "增加的行数:%s 删除的行数: %s 总行数: %s\n", add,subs,loc}'
增加的行数:2118 删除的行数: 25 总行数: 2093
 
8. 合并的时候冲突,想回退
$ git merge --abort
 
9. tag 相关
##显示所有tag
$ git tag
## 显示含关键字 tag
*号表示匹配符
$ git tag -l '*2020*'
##创建标签
$ git tag -a 'xx_202010291417' -m 'add log'
$ git push origin xx_202010291417
$ git show xx_202010291419 #可以看到标签信息和与之对应的提交信息
或者
##轻量打标
$ git tag 'xx_202010291421'
## 推送标签 多个
$git push origin --tags 把所有不在远程仓库服务器上的标签全部传送到那里。
##删除标签
$ git push origin --delete
 
10. 分支创建与切换
创建新分支:git branch branchName
切换到新分支:git checkout branchName
然后,上面两个命令也可以合成为一个命令:
git checkout -b branchName
 
 
 
 
 
 
 
posted @ 2025-05-13 09:12  fanblog  阅读(9)  评论(0)    收藏  举报