参考:
https://www.cnblogs.com/oufeng/p/6614042.html
https://blog.csdn.net/weixin_43868754/article/details/106535093
https://blog.csdn.net/weixin_43868754/article/details/106534688
https://stackoverflow.com/questions/8329485/unable-to-find-remote-helper-for-https-during-git-clone
目标:
- git版本:2.12.2
- 下载目录:/root/software/Git
- 安装目录:/root/software/Git/setup
一. 安装与环境变量配置
-
关联库安装
--安装gcc yum install gcc --安装g++ yum install gcc-c++ --安装编译所需的包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install gcc perl-ExtUtils-MakeMaker
-
创建目录和下载安装包
mkdir -p "安装目录" cd "下载目录" https://www.kernel.org/pub/software/scm/git/git-2.12.2.tar.gz
-
解压,编译,安装
tar -zxvf git-2.12.2.tar.gz # 解压 cd git-2.12.2 # 进入解压后的目录 ./configure --prefix="安装目录" make & make install
-
将git的bin目录添加到PATH环境变量
vi ~/.bashrc #添加该语句 export PATH=$PATH:~/git-2.12.2/setup/bin
source ~/.bashrc
-
测试配置是否成功
git --version
二. git快速使用
各部分关系图
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
fetch vs pull
git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
Git 全局设置:
git config --global user.name "zhang_san"
git config --global user.email "zhang_san@163.com"
上传本地项目到远程仓库
1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库
git init
2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件
git add .
3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明
git commit -m 'first commit'
4、关联到远程库
git remote add origin 你的远程库地址,如:
git remote add origin https://github.com/zhang_san/demo.git
5、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
git pull --rebase origin master
6、把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。
git push -u origin master
7、下载一个项目和它的整个代码历史
git clone [url]
8、取回远程仓库的变化,并与本地分支合并
git pull [remote] [branch]
9、状态查询命令
git status
三. 一些错误及解决方案
-
git fatal: Unable to find remote helper for ‘https’
错误原因:缺少插件curl-devel
解决方案:
-
安装curl-devel
yum install curl-devel
若没有yum,前往http://curl.haxx.se/dlwiz/?type=devel下载压缩包后,编译安装
-
回到git的安装目录,重新编译安装git
cd "安装目录" ./configure --prefix="git安装目录" --with-curl="curl安装目录" make make install