# process.git 库模块帮助文档

## process 成员列表 <a id="process" href="#process">&#x23;</a>

### process.git("字符串参数") <a id="process.git" href="#process.git">&#x23;</a>
创建 Git 工具。  
参数 @1指定工作目录，省略则传入 "/" （应用程序根目录）。  
如果系统未安装 Git 时将下载并安装 Git,  
[git安装程序](https://git-scm.com/download/win)

### process.git() <a id="process.git" href="#process.git">&#x23;</a>
[返回对象:processGitObject](#processGitObject)

## process.git 成员列表 <a id="process.git" href="#process.git">&#x23;</a>

### process.git.getInstallPath() <a id="process.git.getInstallPath" href="#process.git.getInstallPath">&#x23;</a>
获取 git.exe 安装路径。  
可选用参数@1 指定未找到 git.exe 是否允许自动安装

### process.git.install() <a id="process.git.install" href="#process.git.install">&#x23;</a>
安装 Git for Windows

## processGitObject 成员列表 <a id="processGitObject" href="#processGitObject">&#x23;</a>

### processGitObject.add("字符串参数") <a id="processGitObject.add" href="#processGitObject.add">&#x23;</a>
指定要添加到暂存区的文件名目录,  
文件名中可使用*通配符,  

暂存区(Stage)也称索引区(Index)  
Index(Stage)是一个列表，用于记录有我们需要跟踪的所有文件

### processGitObject.addAll() <a id="processGitObject.addAll" href="#processGitObject.addAll">&#x23;</a>
保存添加所有新增、修改、删除文件操作,  
可远在参数中指定目录

### processGitObject.addNoAll() <a id="processGitObject.addNoAll" href="#processGitObject.addNoAll">&#x23;</a>
保存添加所有修改、新增文件操作，  
不包括删除文件,可远在参数中指定目录

### processGitObject.addUpdate() <a id="processGitObject.addUpdate" href="#processGitObject.addUpdate">&#x23;</a>
保存添加所有修改、删除文件操作,  
不包括新增文件,可远在参数中指定目录

### processGitObject.branch("--set-upstream-to=origin/master","master") <a id="processGitObject.branch" href="#processGitObject.branch">&#x23;</a>
手动建立本地分支与远程分支的追踪关系  

如果当前分支与远程分支存在追踪关系,pull可省略远程分支名

### processGitObject.branch("-d","branch") <a id="processGitObject.branch" href="#processGitObject.branch">&#x23;</a>
删除指定分支,  
参数@1改为大写"-D"则强行删除未合并的分支

### processGitObject.branch("branch") <a id="processGitObject.branch" href="#processGitObject.branch">&#x23;</a>
创建新分支,但不会切换过去

### processGitObject.branch() <a id="processGitObject.branch" href="#processGitObject.branch">&#x23;</a>
列出所有分支,前面是*号的为当前分支

### processGitObject.checkout("--",".") <a id="processGitObject.checkout" href="#processGitObject.checkout">&#x23;</a>
撤消本地所有修改,  
为避免提交ID与文件路径同名冲突,请在参数@1中指定"--"

### processGitObject.checkout("--",filename) <a id="processGitObject.checkout" href="#processGitObject.checkout">&#x23;</a>
用暂存区中指定文件来覆盖工作区中的对应文件,  
为避免提交ID与文件路径同名冲突,请在参数@1中指定"--"

### processGitObject.checkout("-b",branch) <a id="processGitObject.checkout" href="#processGitObject.checkout">&#x23;</a>
创建并切换到branch分支

### processGitObject.checkout("HEAD",filename) <a id="processGitObject.checkout" href="#processGitObject.checkout">&#x23;</a>
直接用HEAD覆盖工作区  
相当于git reset HEAD + git checkout -- filename

### processGitObject.checkout(branch) <a id="processGitObject.checkout" href="#processGitObject.checkout">&#x23;</a>
更新HEAD以指向branch分支，以及用branch指向的树更新暂存区和工作区

### processGitObject.clean("-xdf") <a id="processGitObject.clean" href="#processGitObject.clean">&#x23;</a>
删除当前目录下没有被track过的文件或目录  
不管是否是.gitignore文件指定的文件或目录

### processGitObject.clone("字符串参数") <a id="processGitObject.clone" href="#processGitObject.clone">&#x23;</a>
克隆远程仓库

### processGitObject.cmd() <a id="processGitObject.cmd" href="#processGitObject.cmd">&#x23;</a>
指定一个或多个 git.exe 启动参数,  
进程执行完成并关闭后,返回标准输出,以及错误输出  
[git指令文档](https://git-scm.com/docs)

### processGitObject.commit() <a id="processGitObject.commit" href="#processGitObject.commit">&#x23;</a>
提交暂存区更改到本地版本库,  
必须在参数中使用一个字符串参数指定更改日志

### processGitObject.diff("--cached") <a id="processGitObject.diff" href="#processGitObject.diff">&#x23;</a>
返回暂存区和版本库的差异

### processGitObject.diff("HEAD") <a id="processGitObject.diff" href="#processGitObject.diff">&#x23;</a>
返回工作区和版本库的差异

### processGitObject.diff() <a id="processGitObject.diff" href="#processGitObject.diff">&#x23;</a>
返回工作区和暂存区的差异

### processGitObject.fetch("origin","master") <a id="processGitObject.fetch" href="#processGitObject.fetch">&#x23;</a>
取回远程仓库origin的master分支,  
但不会自动与本地分支合并

### processGitObject.globalUser(用户名,邮箱) <a id="processGitObject.globalUser" href="#processGitObject.globalUser">&#x23;</a>
设置全局用户名、邮件

### processGitObject.ignore() <a id="processGitObject.ignore" href="#processGitObject.ignore">&#x23;</a>
在参数中使用字符串指定忽略文件.gitignore的内容  
[忽略文件模板](https://github.com/github/gitignore)

### processGitObject.init() <a id="processGitObject.init" href="#processGitObject.init">&#x23;</a>
创建版本库

### processGitObject.log() <a id="processGitObject.log" href="#processGitObject.log">&#x23;</a>
查看提交历史

### processGitObject.merge(branch) <a id="processGitObject.merge" href="#processGitObject.merge">&#x23;</a>
合并指定分支

### processGitObject.open() <a id="processGitObject.open" href="#processGitObject.open">&#x23;</a>
指定一个或多个 git.exe 启动参数,返回 process 对象

[返回对象:processObject](https://www.aardio.com/zh-cn/docs/library-reference/process/_.html#processObject)

### processGitObject.popen() <a id="processGitObject.popen" href="#processGitObject.popen">&#x23;</a>
指定一个或多个 git.exe 启动参数,  
返回 process.popen 对象,  

不显示 git 控制台窗口，  
并可通过返回的进程管道读写进程输入输出

[返回对象:processPopenObject](https://www.aardio.com/zh-cn/docs/library-reference/process/popen.html#processPopenObject)

### processGitObject.pull("origin","dev:master") <a id="processGitObject.pull" href="#processGitObject.pull">&#x23;</a>
取回远程仓库的dev分支,  
并与本地master分支合并  
如果与当前分支合并,冒号后面部分可以省略,  
如果当前分支与远程分支存在追踪关系,可省略远程分支名

### processGitObject.pull() <a id="processGitObject.pull" href="#processGitObject.pull">&#x23;</a>
如果当前分支只有一个远程追踪分支,  
可省略参数直接取回该分支

### processGitObject.push("origin","master") <a id="processGitObject.push" href="#processGitObject.push">&#x23;</a>
推送master分支到远程仓库origin,  
在这之前应当先将文件更改add到暂存区,  
然后在commit到本地版本库,  

可用remoteAdd函数添加远程仓库地址,  
首次推送时可增加"-u"参数

### processGitObject.push("origin,"tagName") <a id="processGitObject.push" href="#processGitObject.push">&#x23;</a>
推送tagName指定的标签到远程仓库origin,

### processGitObject.rebase() <a id="processGitObject.rebase" href="#processGitObject.rebase">&#x23;</a>
变基操作

### processGitObject.remote("-v") <a id="processGitObject.remote" href="#processGitObject.remote">&#x23;</a>
查看远程仓库的信息

### processGitObject.remote("add","origin","字符串参数") <a id="processGitObject.remote" href="#processGitObject.remote">&#x23;</a>
添加远程仓库关联,  
参数@1指定名称,参数@2指定过程仓库地址

### processGitObject.remote("rm","origin") <a id="processGitObject.remote" href="#processGitObject.remote">&#x23;</a>
删除远程仓库关联

### processGitObject.reset("--hard","HEAD~1") <a id="processGitObject.reset" href="#processGitObject.reset">&#x23;</a>
回退到上一个版本,并放弃之后的版本历史以及所有更改,  
HEAD指针、暂存区、工作区都回到上次的提交状态  
可以修改参数中的数字指定回退的版本数,也可以直接指定版本ID

### processGitObject.reset("HEAD") <a id="processGitObject.reset" href="#processGitObject.reset">&#x23;</a>
撤消对暂存区的更改并重新放回工作区,  
可增加一个参数指定文件或目录

### processGitObject.resetAndClean() <a id="processGitObject.resetAndClean" href="#processGitObject.resetAndClean">&#x23;</a>
清空工作目录中所有未提交的内容  
删除当前目录下所有没有跟踪过的文件  
工作目录和缓存区恢复最近一次commit时的状态

### processGitObject.resetPush(commitId) <a id="processGitObject.resetPush" href="#processGitObject.resetPush">&#x23;</a>
远程仓库强制回退到指定的提交ID

### processGitObject.revert("HEAD~1") <a id="processGitObject.revert" href="#processGitObject.revert">&#x23;</a>
回退到上一个版本,  
可生成一次新的提交,版本历史是不会被破坏,  
可以修改参数中的数字指定回退的版本数,也可以直接指定版本ID

### processGitObject.rm("-r","字符串参数") <a id="processGitObject.rm" href="#processGitObject.rm">&#x23;</a>
自版本库和暂存区删除文件,  
"-r" 参数允许递归删除目录下的文件

### processGitObject.setHttpProxy(代理服务器地址) <a id="processGitObject.setHttpProxy" href="#processGitObject.setHttpProxy">&#x23;</a>
设置 HTTP/HTTPS 代理，  
参数 @1 示例: "socks5://127.0.0.1:10801"，  
设为 null 清除代理

### processGitObject.show() <a id="processGitObject.show" href="#processGitObject.show">&#x23;</a>
显示相关信息

### processGitObject.stash("list") <a id="processGitObject.stash" href="#processGitObject.stash">&#x23;</a>
列出备份的工作现场

### processGitObject.stash("pop") <a id="processGitObject.stash" href="#processGitObject.stash">&#x23;</a>
使用备份的工作现场恢复工作区,  
并删除备份的工作现场

### processGitObject.stash() <a id="processGitObject.stash" href="#processGitObject.stash">&#x23;</a>
备份工作现场

### processGitObject.status() <a id="processGitObject.status" href="#processGitObject.status">&#x23;</a>
显示工作目录和暂存区的状态

### processGitObject.tag("-d","tagName") <a id="processGitObject.tag" href="#processGitObject.tag">&#x23;</a>
删除标签

### processGitObject.tag("tagName") <a id="processGitObject.tag" href="#processGitObject.tag">&#x23;</a>
设置标签

### processGitObject.tag() <a id="processGitObject.tag" href="#processGitObject.tag">&#x23;</a>
列出所有标签

### processGitObject.user(用户名,邮箱) <a id="processGitObject.user" href="#processGitObject.user">&#x23;</a>
设置用户名、邮件  
不指定参数查看用户名、邮箱
