跳至正文

Git 知识大全

  • 干货

升级 Git 到最新版本

Centos7 自带 git 版本为 1.8.3.1,查看 git 版本:

git --version

卸载老版本git:

yum remove -y git

安装依赖包

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
yum -y install wget

到git官网查看最新的版本为 2.32.0:

https://git-scm.com/download/

下载 git 2.32.0 并将 git 添加到环境变量中,按顺序执行:

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.32.0.tar.gz
tar zxvf git-2.32.0.tar.gz
cd git-2.32.0
./configure --prefix=/usr/local/git
make && make install

配置全局路径

修改 /etc/profile 文件:

vi /etc/profile

在文件末尾加上如下两行代码:

PATH=$PATH:/usr/local/git/bin
export PATH

最后执行命令使其修改生效:

source /etc/profile

查看版本号:

git --version

初次运行 Git 前的配置

在新的系统上,我们一般都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。

Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:


/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。

~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 –global 选项,读写的就是这个文件。

当前仓库的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前仓库有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。


用户信息配置

第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

git config --global user.name "yunkui"
git config --global user.email yunkui@live.com

设置 push.default 的值

当 push.default 的值设置成 ‘matching’ ,git 将会推送所有本地已存在的同名分支到远程仓库
从 Git 2.0 开始,git 采用更加保守的值’simple’,只会推送当前分支到相应的远程仓库,’git pull‘ 也将值更新当前分支。
两者的区别上面也说了,所以我就采用新的保守值吧,输入:

git config --global push.default simple

查看配置信息

要检查已有的配置信息,可以使用 git config --list 命令:

$ git config --list
user.name=yunkui
user.email=yunkui@live.com
push.default=simple
...

简易的命令行入门教程:

创建 git 仓库:

mkdir test
cd test
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:wuyunkui/test.git
git push -u origin master

已有仓库?

git remote add origin git@github.com:wuyunkui/test.git
git push -u origin master

或者:

git init
git pull git@github.com:wuyunkui/test.git
git add -A
git commit -m "first commit"
git push --set-upstream git@github.com:wuyunkui/test.git master

通过 git clone 克隆仓库/项目

我们以仓库 git@github.com:wuyunkui/sample-project.git 为例,对项目/仓库进行克隆。

通过HTTPS协议克隆

git clone https://github.com:wuyunkui/sample-project.git

通过SSH协议克隆

git clone git@github.com:wuyunkui/sample-project.git

注:该方法虽然将仓库完整的拉取了下来,但是仅仅只会是显示默认分支,如果需要直接到指定的分支,可以在仓库地址后面加上分支名。

通过 git pull 同步

同步,也可以称之为拉取,在Git中是非常频繁的操作,和SVN不同,Git的所有仓库之间是平等的,所以,为了保证代码一致性,尽可能的在每次操作前进行一次同步操作,具体的为在工作目录下执行如下命令:

# 通过HTTPS协议同步
git pull https://github.com:wuyunkui/sample-project.git

# 通过SSH协议同步
git pull git@github.com:wuyunkui/sample-project.git

仓库基本管理

初始化一个Git仓库(以/home/gitee/test文件夹为例)

#进入git文件夹
cd /home/gitee/test

#初始化一个Git仓库
git init

将文件添加到Git的暂存区

git add README.md

提交当前仓库的所有改动

git add -A
# 或者
git add .

查看仓库当前文件提交状态(A:提交成功;AM:文件在添加到缓存之后又有改动)

git status -s

从Git的暂存区提交版本到仓库,参数-m后为当次提交的备注信息

git commit -m "first commit"

通过 git push 推送

将本地的Git仓库信息推送上传到服务器

# 通过HTTPS协议推送
git push https://github.com:wuyunkui/test.git

# 通过SSH协议 推送
git push git@github.com:wuyunkui/test.git

查看git提交的日志

git log

更改远程仓库

查看当前远程仓库名字,移除并添加远程仓库为 gitee

git remote -v
git remote rm origin
git remote add origin git@gitee.com:yunkui/test.git
git push -u origin master

更改远程仓库

git version			# 查看git版本
git init			# 初始化项目
git clone			# 下载远程项目
git add .			# 添加所有文件
git diff [HEAD]		# 查看提交改动
git commit			# 提交添加的改动
git revert			# 撤销提交 只要把出错的提交(commit)的名字(reference)作为参数传给命令
git rm				# 删除文件
git mv				# 移动
git branch			# 查看分支
git branch -v		# 查看最后一次提交
git branch xx		# 创建分支
git branch -d xx	# 删除分支
git checkout (xxx)	# 切换分支
git tag	-a [v1.0]	# 创建过滤文件
git pull			# 新提交
git push			# 提交到远程仓库
标签: