常用命令
- commit太多了? 多个commit合并为1个
git rebase -i HEAD~4(# 这个命令,将最近4个commit合并为1个,HEAD代表当前版本。将进入VIM界面,你可以修改提交信息。推送到远程分支的commit,不建议这样做,多人合作时,通常不建议修改历史。)
git操作
创建分支并提交
git branch BRANCH_NAME && git co BRANCH_NAME && git push origin BRANCH_NAME:BRANCH_NAME在当前分支上打tag
git tag -a TAGNAME -m "tag description"在某次提交上打tag
git tag TAGNAME c809ddbf83939a89659e51dc2a5fe183af384233查看本地tag
git tag推送本地一个tag到远程
git push origin TAGNAME推送本地所有tag到远程
git push origin --tags删除本地tag
git tag -d TAGNAME删除远程tag
git push origin :refs/tags/TAGNAME拉取并切换分支
git checkout -b BRANCHNAME origin/BRANCHNAME拉取标签到本地分支并切换
git checkout --no-track -b branch_NAME TAGNAME显示分支关系图
git log --graph --decorate --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative显示远程地址
git remote -v基于tag打分支
git checkout -b fix-on-v1.2.6 v1.2.6.1导致代码为zip
git archive --output="d:\d-tmp\old-segment-2.zip" --format=zip bb649380240ebc7114d02f9857018ad484394648 --verbose
本地已有仓库关联到远程
cd existing_git_repo git remote add origin git@git-sample.com:sample/sample-project.git git push -u origin "master"获取提交记录中对应的修改文件列表
- 目的:根据最近提交的代码,来判断要不要重新发布新版本,若没有修改.java/.go文件,可以考虑不发布
- 获取最后一次提交记录的修改文件信息
git show --raw [--name-only] - 获取某次提交记录的修改文件信息
git show --raw $commit_id
按提交内容查询commit列表,
####################### # %h 简短哈希(前 7 位) # %ad = Author Date # %cd = Commit Date ####################### git log --date-order --pretty=format:"%h %ad %cd %s" --date=short --grep "提交内容"
别名
见http://eblog.valuetodays.cn/article/detail/38
常用分支合并操作
# 在当前分支上打tag
git tag -a v1.0.0 -m 'first release version'
# 在某次提交上打tag
git tag v1.0.0 c809ddbf83939a89659e51dc2a5fe183af384233
# 查看本地tag
git tag
推送本地一个tag到远程
git push origin v1.0.0
# 拉取并切换分支
git checkout -b BRANCHNAME origin/BRANCHNAME
# 常见的是基于某个tag拉取一个分支
git checkout -b BRANCHNAME v1.0.0
# 推送当前分支
git push
# 基于当前分支推送一个新的远程分支
# git push origin CURRENT_BRANCH:NEW_BRANCH
git push origin develop:feature-xxx神技
- 【git神技】一个本地仓库同时提交到github/gitlab/gitee等多个代码平台 http://eblog.valuetodays.cn/article/detail/115
- 【git神技】git配置多个提交账户 http://eblog.valuetodays.cn/article/detail/111
- 【git神技】git别名使用 http://eblog.valuetodays.cn/article/detail/38
常见问题处理
git这个命令常打错成gti的解决办法
去C:\Program Files\Git\etc\profile.d中,编辑aliases.sh,在alias ll=’ls -l’下面添加如下,重新打开git-bash,输入g就能替代git了
alias g='git'
alias gti='git'
alias gpl='git pull'linux下可以
echo "alias g='git'" >> ~/.bashrc
echo "alias gp='git pull'" >> ~/.bashrc
echo "alias gti='git'" >> ~/.bashrc
echo "alias gpl='git pull'" >> ~/.bashrc
source ~/.bashrc使用 TortoiseGit push 代码时出如下错误
TortoiseGitPlink Fatal Error
Disconnected: No supported authentication methods available (server sent: publickey)
解决:将客户端程序替换为git的ssh.exe的程序,这样在推送时会自动加载本地公钥,服务器就能验证通过了。操作为:TortoiseGit的设置、网络、ssh client、选择 $GIT_HOME\usr\bin\ssh.exe即可
git pull 时每次都要输入用户名和密码的解决办法
git config --global credential.helper store
git-for-windows 安装
尝试安装并获取配置(建议在虚拟机中执行),并复制出.inf文件Git-2.37.3-64-bit.exe /SAVEINF="c:/tmp/Git-2.37.3-64-bit_conf.inf"
使用配置自动化安装Git-2.37.3-64-bit.exe /SILENT /LOADINF="Git-2.37.3-64-bit_conf.inf"
问题
Q: permissions 0644 for ‘/root/.ssh/id_rsa’ are too open
A: chmod 600 fileName
附件
_gitpull.sh
最后编辑:张三 更新时间:2025-10-14 14:13