首页 > 代码库 > Git Manual / Git使用手册 / Git, GitLab, Git Bash, TortoiseGit
Git Manual / Git使用手册 / Git, GitLab, Git Bash, TortoiseGit
Git使用手册
目录
1 引言
2 Git、GitLab简介
2.1 Git
2.2 GitLab
2.3 Git基本概念
3 运行环境
4 基本操作
4.1 安装Git
4.2 使用GitLab服务器上的帐号
4.2.1 常见页面
4.2.2 设置头像
4.2.3 设置SSH Keys
4.2.4 新建项目
4.2.5 合并请求
4.3 使用Git Bash
4.3.1 新建本地Git库
4.3.2 管理远程Git库
4.3.3 克隆远程Git库
4.3.4 查看本地缓存状态
4.3.5 变更本地缓存内容
4.3.6 变更本地Git库中内容
4.3.7 从本地Git库到远程Git库
4.3.8 从远程Git库到本地Git库
4.3.9 分支管理
4.3.10 历史记录
4.4 使用TortoiseGit
4.4.1 设置Git账户信息
4.4.2 新建本地Git库
4.4.3 克隆远程Git库
4.4.4 查看本地缓存状态
4.4.5 变更本地缓存内容
4.4.6 变更本地Git库中内容
4.4.7 从本地Git库到远程Git库
4.4.8 从远程Git库到本地Git库
4.4.9 分支管理
4.4.10 历史记录
1 引言
本文档介绍了Git的基本使用方法。
2 Git、GitLab简介
2.1 Git
Git首先是一个版本控制系统。Git 可以为项目创建快照,并且存储这些快照为唯一的版本。如果你将项目带领到了一个错误的方向上,你可以回退到上一个正确的版本,并且开始尝试另一个可行的方向。如果你是和别人合作开发,当有人向你发送他们的修改时,你可以将这些修改合并到你的工作分支中,然后你的同事就可以获取到合并后的最新版本,并在此基础上继续工作。
Git作为版本控制系统的突出特点在于它是分布式的。如果你要参与到某个项目中,你可以克隆(clone)该项目的 Git 仓库(Repository),然后就像这个项目只有你本地一个版本一样对项目进行修改。最后使用一些简单的命令你就可以拉取(pull)其他开发者的修改,或者你可以把你的修改推送(push)给别人。现在不用担心谁手上的是最新的版本,或者谁的版本又存放在哪里等这些问题了。全部人都是在本地进行开发,然后向共同的目标(或者不是共同的目标,这取决于项目的开发方式)推送或者拉取更新。
2.2 GitLab
GitLab是一个用于仓库管理系统的开源项目,一个使用Git作为代码管理工具,并以此为基础上搭建起来的web服务。它为开发团队存储、分享、发布、测试和合作开发项目提供了中心化的、云存储的场所。
2.3 Git基本概念
工作目录:就是你在Windows资源管理器中能看到的目录。
缓存区:英文叫stage, 或index。一般存放在".git "目录下的index文件(.git/index)中,所以我们有时把缓存区也叫作索引(index)。
本地Git库:工作目录下有一个名为".git "的隐藏目录,这个不算工作目录,而是Git的版本库。
下图展示了工作目录、本地Git库中的缓存区和本地Git库之间的关系:
3 运行环境
VER:git version 2.9.0.windows.1、GitLab 7.10.0、TortoiseGit-1.8.16.0-64bit
OS: Microsoft Windows 7 Ultimate
4 基本操作
4.1 安装Git
安装过程中使用默认设置即可。
4.2 使用GitLab服务器上的帐号
4.2.1 常见页面
联系GitLab服务器管理员开通帐号后使用浏览器登录GitLab主页。第一次登录需要帐号和密码:
登录后可以看到一个名为Dashboard的页面:
Your Projects显示的是管理员将你加入的所有项目的动向,点击右侧具体项目可以进入项目页面:
点击左上角的 标志可以回到Dashboard页面,点击右上角的头像可以进入Your Profile页面:
4.2.2 设置头像
点击右上角的或在Your Profile页面点击头像可以进入Profile Settings页面:
页面右边的区域可以设置用户头像:
4.2.3 设置SSH Keys
在左侧的SSH Keys一栏中,可以设置本地主机与部门架设的GitLab服务器通信时用到的SSH Keys。
首先通过Start Menu或右键菜单打开 Git Bash,执行cat ~/.ssh/id_rsa.pub,如果出现一长串以ssh-rsa或ssh-dsa 开头的字符串,就可以跳过生成SSH Keys的这一步。
使用命令ssh-keygen -t rsa -C "YOURNAME@EXAMPLE.COM"可以生成一个新的SSH key,该命令会提示你输入存储密钥对的路径和文件名,以及一个密码。可以通过回车键来使用默认路径和文件名。最好能够为SSH key使用一个密码,当然你也可以按下回车键来跳过密码设置。注意这里设置的密码不能更改或找回。
再次执行cat ~/.ssh/id_rsa.pub来查看你的公钥,并把从-ssh到你名字和主机的完整字符串复制到打开的页面中Key的文本框里(也可以通过命令clip < ~/.ssh/id_rsa.pub复制,注意使用正确的文件名和路径)。Title栏可任意填写(建议填写该SSH key对应的文件名)。之后点击。
4.2.4 新建项目
点击右上角的或Dashboard\Your Projects页面中的,可以进入到新建项目页面。
这里我们可以新建一个test工程来进行后续的测试。
4.2.5 合并请求
当某次提交被push到远程Git库中后,可以请求更新后的分支与远程Git库中的其他分支合并。通常开发人员会在自己的分支上工作,完成后再将其合并到主分支中以便其他开发人员rebase主分支后结合这部分内容继续工作。
在项目页面的 一栏可以点击来创建合并请求:
在以下页面指定项目负责人进行审核,以确定是否能够合并:
4.3 使用Git Bash
4.3.1 新建本地Git库
使用命令mkdir git-test-project可以在当前工作目录下新建一个名为git-test-project的文件夹。
使用命令cd git-test-project可以进入刚才新建的文件夹。当处在其他目录时,可以通过以绝对路径作为参数的命令cd C:\\Users\\Administrator\\git-test-project或cd C:/Users/Administrator/git-test-project来切换到该目录。
4.3.1.1 git init
使用命令git init会在当前工作目录下生成一个名为.git的隐藏文件夹,从而将当前工作目录标记为一个Git仓库(Repository)。也可以使用命令git init C:/Users/Administrator/git-test-project初始化指定目录为Git仓库:
4.3.2 管理远程Git库
4.3.2.1 git remote
使用命令git remote可以查看当前有哪些远程Git库:
使用命令参数-v可以显示每个远程Git库的实际链接地址:
4.3.2.2 git remote add
使用命令git remote add [shortname] [url] 可以添加远程Git库:
4.3.2.3 git remote rm
使用命令git remote rm可以删除远程Git库:
4.3.3 克隆远程Git库
4.3.3.1 git clone
使用命令git clone git@XXX.XXX.XXX.XXX:YOURNAME/git-test-project.git 或 git clone http://XXX.XXX.XXX.XXX/ YOURNAME /git-test-project.git可以在当前工作目录下克隆远程Git库,其中命令参数可以使用命令git remote –v查看,也可以在GitLab项目页面中查找到:
也可以通过在末尾添加参数的方式来指定克隆到本地的Git库的路径和名字:git clone git@XXX.XXX.XXX.XXX:YOURNAME/git-test-project.git NEWNAME:
4.3.4 查看本地缓存状态
4.3.4.1 git status
使用命令git status可以查看上次提交之后是否有修改:
使用命令参数-s可以简化输出的信息:
4.3.4.2 git diff
使用命令git diff可以查看之前缓存与当前尚未写入缓存的变更:
使用命令参数--cached可以查看已缓存的改动。
使用命令参数HEAD可以查看已缓存的与未缓存的所有改动。
使用命令参数--stat可以显示修改信息的摘要。
4.3.5 变更本地缓存内容
4.3.5.1 git add
使用命令git add [FILE]可以将文件添加到缓存:
使用命令git add .可以添加当前项目的所有文件。
4.3.5.2 git reset
使用命令git reset HEAD可以取消已缓存的内容:
使用命令参数--soft将保留源码和index,并使commit回到某个版本。
使用命令参数--mixed将保留源码,而commit和index回到某个版本。此为默认选项。
使用命令参数--hard将使源码也回到指定版本:
4.3.5.3 git rm
使用命令git rm [FILE]可以将条目从缓存区和工作目录中移除:
使用命令参数--cached可以在工作目录中保留该文件。
4.3.5.4 git mv
使用命令git mv可以重命名缓存区中的文件:
4.3.6 变更本地Git库中内容
4.3.6.1 git revert
使用命令git revert可以通过进行一次反向的commit来回滚上一次commit:
4.3.6.2 git commit
使用命令git commit可以将缓存区内容添加到本地Git库中
4.3.7 从本地Git库到远程Git库
4.3.7.1 git push
使用命令git push [ALIAS] [BRANCH]可以将你的 [BRANCH] 分支推送成为 [ALIAS] 远程Git库上的 [BRANCH] 分支。
4.3.8 从远程Git库到本地Git库
4.3.8.1 git fetch
使用命令git fetch可以从远程Git库下载新分支与数据:
4.3.8.2 git pull
使用命令git pull可以从远程Git库提取数据并尝试合并到当前分支:
4.3.9 分支管理
4.3.9.1 git branch
使用命令git branch可以列出你在本地的分支:
使用命令参数-a可以查看到远程分支。
使用命令git branch [BRANCHNAME]可以创建名为BRANCHNAME的分支:
使用命令git branch -d [BRANCHNAME] 可以删除名为BRANCHNAME的分支。
4.3.9.2 git checkout
使用命令git checkout [BRANCHNAME]可以切换到指定分支:
4.3.9.3 git merge
使用命令git merge [BRANCH]可以将指定分支合并到当前分支:
4.3.9.4 git rebase
使用命令git rebase可以把一个分支的修改合并到当前分支:
注意rebase和merge的区别:rebase是分支串连,merge是并连到一点。
4.3.10 历史记录
4.3.10.1 git log
使用命令git log可以查看提交历史:
使用命令参数--oneline可以查看历史记录的简洁版本。
使用命令参数--reverse可以查看历史记录的逆向版本。
使用命令参数--graph可以查看历史中什么时候出现了分支、合并。
使用命令参数--author可以查找指定用户提交的日志。
使用命令参数--since、--before、--until、--after可以查找指定日期的日志。
使用命令参数--decorate可以查看带标签的历史记录。
4.3.10.2 git reflog
使用命令git reflog可以查看所有分支的所有Git操作记录:
4.3.10.3 git tag
使用命令git tag可以为某个分支或者某次提交打上标签:
使用命令参数-a可以创建一个带注解的标签。
4.4 使用TortoiseGit
TortoiseGit是Windows平台下仿照TortoiseSVN针对Git而推出的一款开源软件。安装时使用默认设置即可:
4.4.1 设置Git账户信息
在开始菜单或TortoiseGit安装目录下找到PuTTYgen来生成一个Putty Key:
在软件“Putty Key Generator”的界面中,点击Generate按钮,软件将会根据鼠标在软件窗体中的移动来生成对应的Putty Key,将生成的公钥添加到GitLab -> Profile Setting -> SSH Key页面中(参见4.2.3 设置SSH Keys),私钥保存下来备用:
4.4.2 新建本地Git库
在桌面或资源管理器中需要新建本地Git库的地方先新建一个文件夹,再在文件夹上点击鼠标右键:
点击”Git Create repository here…”菜单项,在弹出的对话框中,“Make it Bare”选项通常置空(如果点选则不会生成“.git”隐藏目录,而是直接将文件夹作为缓存区),直接点击OK。
Explorer.exe重启后可以看到目录出现特定标记,以显示当前状态。该标记可在Settings的Icon Overlay中设置。
4.4.3 克隆远程Git库
在桌面或资源管理器中需要生成本地Git库的地方点击鼠标右键:
点击”Git Clone..”菜单项,在弹出的对话框中,URL一栏填写将要clone的远程Git库地址,Putty Key一栏选择之前生成的私钥,之后点击OK。
4.4.4 查看本地缓存状态
在Git库右键菜单项中点击或,可以打开Working Tree,列举当前工作目录中相对上次提交的改动:
双击改动项可以查看详细内容:
4.4.5 变更本地缓存内容
在Git库右键菜单项中点击,在弹出的对话框中将列举当前工作目录中相对上次提交新添加的文件:
可以在新添加的文件上点击右键,在中通过来忽略新增文件:
对于已缓存的文件,也可在中通过来取消缓存。
在中通过可以查看当前工作目录中相对上次提交的改动,并将之还原到上次提交的版本:
通过可以清理工作目录:
4.4.6 变更本地Git库中内容
点击Git库右键菜单的可以提交当前工作目录中的内容到本地Git库:
填写Message后即可提交,提交完成后可以给本次提交添加标签或者推送到远程Git库:
4.4.7 从本地Git库到远程Git库
在中通过可以将本地Git库中的内容推送到远程Git库:
4.4.8 从远程Git库到本地Git库
在中通过或可以将远程Git库中的内容下载到本地Git库:
4.4.9 分支管理
在中通过可以查看、重命名、合并、切换到、删除本地和远程的分支:
通过可以新建分支:
通过可以将工作目录切换到特定分支或者某次提交:
通过可以合并分支:
通过可以把一个分支的修改合并到指定分支:
注意rebase和merge的区别:rebase是分支串连,merge是并连到一点。
如果merge或rebase的时候出现了冲突,可以通过来解决:
双击冲突项可以查看详细信息并予以解决:
4.4.10 历史记录
在中通过可以查看提交历史:
通过可以查看所有分支的所有操作记录:
通过可以为某个分支或者某次提交打上标签:
————————————————
本文为本人原创,转载请注明出处。
http://www.cnblogs.com/lantingji/p/5942721.html
Git Manual / Git使用手册 / Git, GitLab, Git Bash, TortoiseGit