Skip to content

Git

重置到某一次提交
Terminal window
# 退到/进到 指定commit的sha码
git reset --hard commit_id
# 强推到远程
git push origin HEAD --force
修改.gitignore使之生效
Terminal window
# 清楚tracked缓存
git rm -r --cached .
# 重新添加文件
git add .
获取一个目录下的所有git项目的当前分支名和项目名
#!/bin/bash
dir_path=`pwd`
filelist=`ls $dir_path`
for file in $filelist
do
# 检查目录和git目录是否存在
if [[ -d $file ]] && [[ -d $dir_path/$file/.git ]]; then
branch=`cat $dir_path/$file/.git/HEAD`
# 分支名
sub_branch=${branch: 16}
# 打印
echo "$sub_branch $file"
fi
done
一个文件夹下的所有项目都创建相同的分支
#!/bin/bash
dir_path=`pwd`
filelist=`ls $dir_path`
for file in $filelist
do
# 检查目录和git目录是否存在
if [[ -d $file ]] && [[ -d $dir_path/$file/.git ]]; then
# 每行要加分号 ";" ,一开始没有加分号,就报错
cd $dir_path/$file;
git checkout -b 你的分支名;
cd $dir_path;
fi
done
将当前仓库的所有变动提交到仓库
#!/bin/bash
# 拉取最新代码到本地仓库
echo "=========>>>拉取最新代码到本地仓库,开始fetch操作"
git fetch
echo "=========>>>fetch 成功"
# 检查本地分支是否落后于远程分支,如果是,则先合并远程分支
if [ -n "$(git status -uno | grep 'Your branch is behind')" ]; then
echo "=========>>>本地分支落后于远程分支,先合并远程分支"
git pull
echo "=========>>>合并远程分支完成"
fi
# 获取当前分支
branch=$(git rev-parse --abbrev-ref HEAD)
# 检查是否存在未推送的本地 commit,如果有则先执行推送操作
if [ -n "$(git log origin/${branch}..HEAD --oneline)" ]; then
echo "=========>>>存在未推送的本地 commit,先执行推送操作"
git push
echo "=========>>>push 完成"
fi
# 检查是否存在未提交的修改
if [ -z "$(git status --porcelain)" ]; then
echo "=========>>>当前仓库没有未提交的修改,很干净"
exit 1
fi
timeValue=0
# 获取提交注释
if [ -z "$1" ]
then
echo "=========>>>请在 $timeValue s内输入提交注释,否则使用默认提交信息进行提交 | 快捷操作:直接回车:"
read -t $timeValue message
# echo "=========>>>请在输入提交注释 | 如需默认提交信息,请按回车键 "
# read message
if [ -z "$message" ]
then
# echo "必须输入提交注释!!!!!!!!!!!!"
# exit 1
timestamp=$(date +%s)
message="moatkon.com commit $timestamp"
fi
else
message="$1"
fi
# 添加所有修改到 Git
git add .
# 提交修改
git commit -m "$message" --no-verify
# 输出提交信息
echo "=========>>>提交注释: $message"
# 推送代码到远程 Git 仓库
git push
# 输出推送信息
echo "=========>>>已将代码推送到远程仓库"
使用命令将分支合并到指定分支,比如main
  1. 确保你在当前分支,并且已经提交了所有的更改:
Terminal window
git status
git add .
git commit -m "Your commit message"
  1. 切换到 main 分支:
Terminal window
git checkout main
  1. 更新 main 分支到最新状态:
Terminal window
git pull origin main
  1. 合并当前分支到 main 分支:
Terminal window
git merge <当前分支的名称>

从远程分支就是 git merge origin <当前分支的名称>

  1. 如果合并过程中没有冲突,推送合并后的 main 分支到远程仓库:
Terminal window
git push origin main

网站当前构建日期: 2024.06.25