14.4 Git客户端示例 14.5 Git常用命令 14.6 Git LFS使用
14.1 Git 客户端使用
背景信息
使用Git客户端前,需要了解Git安装、创建新仓库、检出仓库、工作流、添加与提交、
推送改动、创建分支、更新与合并分支、创建标签、替换本地改动等基本操作。
前提条件
如果没有安装Git客户端,请到https://git-scm.com/downloads下载最新版本。
使用流程
Git客户端基本使用流程如下图所示。
表14-1 使用流程说明 操作步骤 说明
安装 根据需要安装对应版本:
● Git Windows版
● Git OSX版
● Git Linux版
新建仓库 创建新文件夹,打开,然后执行如下命令:
git init
以创建新的Git仓库。
检出仓库 创建一个本地仓库的克隆版本,执行如下命令:
git clone /path/to/repository
如果是远端服务器上的仓库,命令为:
git clone username@host:/path/to/repository
工作流 本地仓库由Git维护的三棵“树”组成:
● 工作目录:持有实际文件。
● 缓存区(Index):像个缓存区域,临时保存做的改动。
● HEAD:指向最近一次提交后的结果。
添加与提交 将改动内容添加到缓存区,使用如下命令:
git add <filename>
git add *
这是Git基本工作流程的第一步;使用如下命令提交实际改动:
git commit -m "代码提交信息"
此时改动已经提交到了HEAD,但是还没到远端仓库。
推送改动 改动内容目前已经在本地仓库的HEAD中。执行如下命令以将这些 改动提交到远端仓库:
git push origin master
可以将master换成需要推送的任何分支。
如果没有克隆现有仓库,且需要将仓库连接到某个远程服务器,可 以使用如下命令添加:
git remote add origin <server>
将改动推送到所添加的服务器上。
创建分支 分支是用来将特性开发绝缘开来的。在创建仓库时,master是“默 认的”主分支。在其他分支上进行开发,完成后再将它们合并到主 分支上。
1. 创建一个名为“feature_x”的分支,并切换过去:
git checkout -b feature_x
2. 切换回主分支:
git checkout master
3. 将分支推送到远端仓库(不推送该分支,就仅自己所见):
git push origin <branch>
4. 再把新建的分支删掉:
git branch -d feature_x
操作步骤 说明 更新与合并
(分支) 1. 更新本地仓库至最新改动,执行:
git pull
以在你的工作目录中获取(fetch)并合并(merge)远端的改 动。
2. 合并其他分支到当前分支(如master),执行:
git merge <branch>
说明两种情况下,Git都会尝试去自动合并改动。但自动合并并非次次都能成 功,并可能导致冲突(conflicts)。这时候就需要修改这些文件,手动合 并这些冲突(conflicts)。
3. 改完之后,需要执行如下命令将它们标记为合并成功:
git add <filename>
4. 在合并改动之前,也可以使用如下命令查看:
git diff <source_branch> <target_branch>
创建标签 在软件发布时创建标签,是被推荐的。可以执行如下命令以创建一 个名为“1.0.0”的标签:
git tag 1.0.0 1b2e1d63ff
“1b2e1d63ff”是要标记的提交ID的前10位字符。使用如下命令获 取提交ID:
git log
也可以用该提交ID的少一些的前几位,保持ID唯一即可。
替换本地改动 如果误操作,可以使用如下命令替换掉本地改动:
git checkout -- <filename>
此命令会使用HEAD中的最新内容替换掉工作目录中的文件。已添 加到缓存区的改动,以及新文件,均不受影响。
如果需要丢弃所有的本地改动与提交,可以到服务器上获取最新的 版本并将本地主分支指向到它:
git fetch origin
git reset --hard origin/master
14.2 使用 HTTPS 协议设置免密码提交代码
背景信息
为避免每次访问都输入用户名和密码,可以使用Git的凭证存储功能实现免密码访问
(为保证该功能正常使用,建议安装Git2.5以上版本),不同操作系统的设置方法如 下:
● Windows系统如何使用HTTPS协议设置免密码提交代码
● MAC系统如何使用HTTPS协议设置免密码提交代码
● Linux系统如何使用HTTPS协议设置免密码提交代码
前提条件
● 使用HTTPS协议访问代码仓库,需要设置SSH密钥/HTTPS密码。
● 使用HTTPS协议方式在进行Git clone、Git fetch、Git pull以及Git push等操作 时,需要输入DevCloud中CodeHub的用户名和密码。
Windows 系统如何使用 HTTPS 协议设置免密码提交代码
Windows系统设置免密码提交代码方法,如下表所示。
表14-2 Windows 系统设置免密码提交代码
方法 操作说明
本地配置HTTPS密码 1. 设置Git验证方式。
打开Git客户端:git config --global credential.helper store 2. 使用Git命令进行首次Clone或Push代码,根据提示填写用户名
和密码。
3. 打开“.git-credentials”文件,如果已在本地存储了用户名和 密码,会出现如下记录:
https://username:password@codehub-cn-northeast-1.***.***.com
MAC 系统如何使用 HTTPS 协议设置免密码提交代码
安装“osxkeychain”工具来实现免密码访问:
1. 查找当前系统是否已经安装该工具。
git credential -osxkeychain
# Test for the cred helper
Usage: git credential -osxkeychain < get|store|erase >
如果回显如下,则为未安装。
git: 'credential -osxkeychain' is not a git command. See 'git --help'.
2. 如果该工具未安装,先获取安装包:
git credential -osxkeychain
# Test for the cred helper
git: 'credential -osxkeychain' is not a git command. See 'git --help'.
curl -s -o \
https://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain
# Download the helper
chmod u+x git-credential-osxkeychain
# Fix the permissions on the file so it can be run
3. 将“osxkeychain”安装在Git的同一个目录下:
sudo mv git-credential-osxkeychain\
"$(dirname $(which git))/git-credential-osxkeychain"
# Move the helper to the path where git is installed Password:[enter your password]
4. 使用“osxkeychain”工具将Git配置成免密码模式:
git config --global credential.helper osxkeychain
#Set git to use the osxkeychain credential helper 说明
– 将凭证存放在内存中一段时间,密码永远不会被存储在磁盘中,并且在15分 钟后从内存中清除:
git config --global credential.helper cache
#Set git to use the credential memory cache
– 通过timeout选项设置过期时间,单位为秒:
git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)
● store模式:
git config --global credential.helper store
报错处理
如果在使用HTTPS协议下载时提示“SSL certificate problem: self signed certificate”
错误信息,请在客户端进行如下设置:
git config --global http.sslVerify false