• 沒有找到結果。

使用 HTTPS 协议设置免密码提交代码

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

相關文件