tar 压缩包安装配置

卸载旧版本

  • yum 直接卸载

    1
    yum remove git
  • 查看 git 安装目录

    1
    2
    3
    4
    5
    which -a git
    # 显示出来 git 安装路径
    cd /git安装路径
    # 执行删除命令
    rm -rf git*

下载 git 安装包

官方镜像地址:https://mirrors.edge.kernel.org/pub/software/scm/git/

在服务器目录下下载 git 对应版本

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

解压

1
tar -zxvf git-2.40.0.tar.gz

安装可能需要的依赖

1
2
yum install curl-devel expat-devel openssl-devel zlib-devel gcc-c++ 
yum install perl-ExtUtils-MakeMaker automake autoconf libtool make

进入 git-2.40.0 文件夹下,进行编译安装等命令

1
2
3
4
# 安装编译 git 可执行文件,并指定文件位置
./configure --prefix=/data/git 等同于 make PREFIX=/data/git all
# 安装到指定目录
make PREFIX=/data/git && make PREFIX=/data/git install

配置环境变量

1
2
3
4
5
6
7
8
9
# 编辑 profile 文件
vim /etc/profile
# git 环境变量,追加以下内容
export GIT_HOME=/data/git
export PATH=$PATH:${GIT_HOME}/bin
# 等同于上面两行
export PATH=$PATH:/data/git/bin
# 保存刷新配置
source /etc/profile

查看版本 git --version,出现以下内容则说明安装配置成功

1
2
3
[root@aliyun /]# git --version
git version 2.40.0
[root@aliyun /]#

设置密钥

1
2
ssh-keygen -t rsa -C "xx@xx.com"
cat ~/.ssh/id_rsa.pub

yum 安装配置

yum 安装最简单,但无法控制安装的版本

1
2
3
yum -y install git
# 检查安装的版本
git --version

Git常用命令最全总结

基本命令

  • git init:初始化一个 Git 仓库。
  • git clone <repository>:克隆一个 Git 仓库到本地。
  • git add <file>:将指定文件添加到暂存区。
  • git add .:将所有修改过的文件添加到暂存区。
  • git commit -m "message":提交所有已经添加到暂存区的文件到本地仓库,并附带一条提交信息。
  • git status:查看工作目录和暂存区的状态。
  • git diff:查看工作目录和暂存区之间的差异。
  • git log:查看提交日志。
  • git checkout <branch>:切换到指定分支。
  • git branch:查看所有分支。
  • git merge <branch>:将指定分支合并到当前分支。
  • git pull:从远程仓库拉取最新代码到本地仓库。
  • git push:将本地仓库最新代码推送到远程仓库。

高级命令

  • git stash:将工作区的改动保存到一个新的 stash 中。
  • git stash list:列出所有 stash。
  • git stash apply:将最近的 stash 应用到工作区。
  • git stash drop:删除最近的 stash。
  • git stash pop:应用最近的 stash 并删除它。
  • git reset <file>:将指定文件在暂存区的修改回退到工作目录。
  • git reset --hard HEAD:将工作目录和暂存区中的所有修改回退到最新的本地提交。
  • git revert <commit>:撤销指定的提交。
  • git cherry-pick <commit>:将指定提交合并到当前分支。
  • git rebase <branch>:将当前分支变基于指定分支。
  • git tag:列出所有 tag。
  • git tag <tag>:创建一个新 tag。
  • git tag -a <tag> -m "message" <commit>:创建一个带有附注信息的新 tag。
  • git push --tags:将所有 tag 推送到远程仓库。
  • git fetch <remote>:从远程仓库获取最新代码。
  • git remote:查看远程仓库列表。
  • git remote add <name> <url>:添加一个新的远程仓库。
  • git remote remove <name>:删除指定的远程仓库。
  • git remote set-url <name> <newurl>:修改指定远程仓库的 URL。

Git 分支操作

  • git branch:列出本地分支列表。
  • git branch -a:列出本地和远程分支列表。
  • git branch <branch-name>:新建分支。
  • git branch -d <branch-name>:删除分支。
  • git checkout <branch-name>:切换到指定分支。
  • git checkout -b <new-branch-name>:创建新分支并切换到该分支。
  • git merge <branch-name>:合并指定分支到当前分支。
  • git merge --no-ff <branch-name>:不使用快进模式合并指定分支到当前分支。
  • git log --graph:以图表的形式显示分支的合并情况。

Git 标签操作

  • git tag:列出所有本地标签。
  • git tag -l "pattern":列出所有符合指定模式的标签。
  • git tag <tag-name>:新建标签。
  • git tag -a <tag-name> -m "message":使用附注信息新建标签。
  • git tag -d <tag-name>:删除标签。
  • git push origin <tag-name>:推送指定标签到远程仓库。
  • git push origin --tags:推送所有本地标签到远程仓库。
  • git checkout <tag-name>:切换到指定标签。

Git 远程仓库操作

  • git clone <repository>:克隆远程仓库。
  • git pull:拉取远程仓库最新代码。
  • git fetch <remote>:从远程仓库获取最新代码。
  • git push:将本地仓库最新代码推送到远程仓库。
  • git pull <remote> <branch>:从远程仓库拉取指定分支的最新代码。
  • git push <remote> <branch>:将本地仓库的最新代码推送到指定远程仓库的指定分支。
  • git remote add <name> <url>:添加一个新的远程仓库。
  • git remote remove <name>:删除指定的远程仓库。
  • git remote set-url <name> <new-url>:修改指定远程仓库的 URL。
  • git remote -v:查看远程仓库列表和对应 URL。

Git 配置

  • git config --global user.name "name":设置用户名称。
  • git config --global user.email "email":设置用户邮件地址。
  • git config --global core.editor "editor":设置默认编辑器。
  • git config --global alias.<alias-name> "<command>":设置别名。
  • git config --list:列出所有 Git 配置。

Git 撤销操作

  • git reset <file>:取消暂存文件。
  • git reset --hard:撤销所有未提交的修改。
  • git reset HEAD^ :回退一个版本。
  • git reset HEAD^^ :回退两个版本。
  • git reset HEAD~100 :回退100个版本。
  • git reset -hard HEAD~1: 回退上一个版本。
  • git reset -hard 3de025010585d:通过提交生成的哈希码回退版本,注意哈希码不用全部输入,输入前几个字节就可以识别出来。
  • git checkout <file>:取消对文件的修改。
  • git checkout .:撤销所有修改,包括已经暂存的和未暂存的修改。
  • git revert <commit>:撤销指定提交的修改,生成一条新的提交记录。

Git 历史操作

  • git log:显示提交日志。
  • git log --graph:以图形化方式显示提交日志。
  • git log --oneline:显示简化版的提交日志。
  • git blame <file>:显示指定文件的每一行是什么人在什么时间修改的。

Git 子模块操作

  • git submodule add <repository> <path>:添加子模块。
  • git submodule init:初始化子模块。
  • git submodule update:更新子模块。
  • git submodule foreach <command>:对每个子模块执行指定命令。

Git 忽略文件

  • .gitignore:忽略指定文件或目录。
  • git rm --cached <file>:从 Git 仓库中删除指定文件,但在本地保留。