Skip to main content

GIT

centos 安装高版本的 git

安装依赖包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc -y
yum install  gcc perl-ExtUtils-MakeMaker -y

卸载旧版本

yum remove git

安装步骤

cd /usr/local/src/

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.1.tar.gz

tar -xvf git-2.38.1.tar.gz

cd git-2.38.1/

./configure --prefix=/usr/local/git all

make -j && make install

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc

source /etc/bashrc

#验证版本
git --version

GIT常见问题

1.删除 .gitignore 生成之前上传的文件

1.删除 .gitignore 生成之前上传的文件
git rm -r --cached .

git add .

git commit -m "chore: 清除缓存。"

git push

2.解决本地和远程冲突

2.解决本地和远程冲突
git stash

git pull

git stash pop

git stash list

git stash clear

3.创建分支/并推送远程

3.创建分支/并推送远程
git branch                    #查看远程分支

git branch -r #查看所有分支

git branch -a #本地新建分支/并切换

git branch [branch name]

git checkout [branch name]

git checkout -b [branch name] #推送分支到远程

git push origin [branch name] #删除本地分支/远程分支

git branch -d [branch name]

git push origin :[branch name]

4.git tag

4.git tag
git tag {标签名} {提交ID}  #轻量标签的命令如下:

git tag v1.0.0 #创建一个指向最新提交的轻量标签:

git tag -a {标签名} -m "{标签信息}" {提交ID} #创建附注标签的命令如下:

git tag -a v1.0.0 -m "Release version 1.0.0" HEAD #创建一个指向最新提交的附注标签:

git tag #查看当前项目中的所有标签

git show {标签名} #如果想查看某个具体标签的信息

git push origin {标签名} #将标签推送到远程服务器:

git push origin --tags #一次性推送所有本地标签

git tag -d {标签名} #删除本地标签

git push origin :refs/tags/{标签名} #删除远程标签的命令

4.5 阿里云自动构建镜像根据tag自定义镜像版本

git tag -a release-v7.1.0 -m "Update ...."

git push origin --tags

5.本地跟远程合并

5.本地跟远程合并
git fetch origin 

git merge origin/master

git push -u origin master

=========================

git fetch --all

git reset --hard origin/master

git pull

6.git push 卡在 Total 29 (delta 5), reused 0 (delta 0), pack-reused 0 这个位置

6.git push 卡在 Total 29 (delta 5), reused 0 (delta 0), pack-reused 0 这个位置
git config --global sendpack.sideband false

git config --local sendpack.sideband false

git config --global http.postBuffer 524288000

git config --global https.postbuffer 524288000

git config --global -l

git config --local -l

##执行完这些命令后,再上传

git push -u origin

##可能会稍微卡一会儿,然后就成功了。

7.git 拉取远程指定分支

//1.clone命令

git clone -b dev开发分支 https://github.com/521/xxxx.git

git clone -b feature-branch --single-branch https://github.com/user/repo.git

//git branch -a

//2.fetch命令

git fetch

git checkout dev开发分支

//git branch -a

//3.checkout -b 命令获取

//执行git branch -a查看所有分支名称,* 号表示当前分支

git branch -a

//#执行git checkout -b <本地分支名称> origin/<远程分支名称>,拉取指定的某一个分支

git checkout -b dev开发分支 origin/dev开发分支

//#该命令的作用是:checkout远程仓库origin的分支“dev开发分支”,在本地起名为“dev开发分支”分支,并切换到本地的“dev开发分支”分支。

git pull origin dev开发分支

8.git 合并远程分支

//在本地新建一个与远程的分支b相同(被合并的版本)的分支b.该指令的意思:创建一个本地分支,并将远程分支放到该分支里面去。
git checkout -b b origin/b

//将远程代码pull到本地
git pull origin b

//返回到你的分支a
git checkout a

//合并分支a与分支b..该指令的意思:当前所在分支与b进行合并。
git merge b

//把本地的分支a同步到远程
git push origin a

9.打tag并提交

note
  • Git 允许在‌一次操作流程中同时完成代码提交和标签创建‌,但需注意二者存在逻辑顺序依赖。以下是具体实现方式:
git add .                   # 添加所有修改到暂存区
git commit -m "新增用户登录功能" # 提交代码到本地仓库
git tag -a v1.1.0 -m "用户登录功能发布" # 为最新提交创建附注标签
git push origin main --follow-tags # 推送代码到 main 分支,并同步关联的标签
tip
  • --follow-tags 参数会推送所有与当前提交关联的标签‌
  • 标签必须指向已存在的提交对象,因此‌必须先提交代码再打标签
  • 通过合并推送命令(--follow-tags),可实现代码和标签的“同步”推送,但本地仍需分步执行提交与标签创建‌
单提交多标签‌:可为同一提交创建多个标签
git tag v1.1.0-stable  # 轻量标签
git tag -a v1.1.0-beta -m "测试版本" # 附注标签
git push origin main --follow-tags # 推送全部标签
强制覆盖标签‌:若需修改已推送的标签,需先删除远程标签再重新推送
git tag -d v1.1.0              # 删除本地标签
git push origin :refs/tags/v1.1.0 # 删除远程标签
git tag -a v1.1.0 # 重新创建标签
git push --tags # 推送新标签