1:git
git是一种最常用的代码版本管理工具
1:安装
windows安装:https://git-scm.com/download/win git通过自己的秘钥和配置服务器上的秘钥进行关联,以便于版本管理
1:设置信息
安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改:
$ git config --global user.name "John Doe"
$ git config --global user.email 123456789@example.com
查看配置: git config --list
命令帮助: git help <verb>
2:初始化本地项目仓库
对于项目我们需要创建本地仓库,有两种方式。
-
方式1:直接在远程仓库选择clone,将远程仓库的全部文件复制到本地成为本地仓库 -
方式2:在想要创建的项目根目录下执行(右键 git bash hear)打开git命令窗口,执行git init后目录下多了一个.git的目录
2.1:本地仓库目录解释
.get 指代的就是本地仓库
这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。要是删除这个东西,则丢弃项目的所有记录。
3:git基本原理
git status查看项目状态
3:merge和rebase
在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。 用于将不同的分支进行合并,比如对各自的分支都进行了修改,如何提交到一起 1:使用merge或者rebase将不同分支的代码合并到一起 2:提交自己的修改到更大的分支中
变基的风险 呃,奇妙的变基也并非完美无缺,要用它得遵守一条准则: 如果提交存在于你的仓库之外,而别人可能基于这些提交进行开发,那么不要执行变基。
2:命令解释
repository:仓库 track:开始或停止跟踪文件 stage:暂存 commit:提交更改。 push:向你的远程仓库推送 pull:从远程仓库拉取文件 clone :克隆的是该 Git 仓库服务器上的几乎所有数据
3:git-gui界面操作
1.菜单栏:
2.工作区变更、文件差异对比:点击工作区变更的文件,右侧窗口会显示文件差异对比。吐槽下,对比的时候显示的差异以上下的格式显示,差异对比的体验非常不友好。
3.索引区:使用命令git add或点击”stage changed”按钮后,工作区变更会添加到该区域。
4.基本操作按钮:stage changed:将工作区的所有变更提交到添加到索引区;(其他在菜单栏中都有对应项,介绍菜单栏时一并介绍)
5.Commit信息输入框:用于commit时输入变更信息,与svn提交时填写的信息一样,主要方便后续查找或了解该次提交的目的。
6.Commit方式:创建一次新的提交或者修改上一次提交。对应于菜单栏中commit项中,new commit和amend last commit相同。
3.1:repository:git库相关操作,基本意思就是字面意思。
1)资源管理器中浏览该Git库工作空间文件,省去查找路径不断点击鼠标的操作。
2)启动Git bash工具(命令行工具)。
3)查看当前分支文件状态,不包括未提交的信息。
4)查看某个分支的文件(弹出框中可选择需要查看的版本、分支或标签),跟上一条差不多,用的比较少,可能是没有这方面的额需求。
5)可视化当前分支历史、可视化所有分支历史:弹出分支操作历史,也就是gitk工具,放到gitk工具中介绍。
3.2:edit
用于操作commit时操作信息输入,只能操作文字输入部分,你没有看错。常用的快捷键大家都知道,何必要单独做成基本没啥用的。本来以为对变更的文件进行批量操作、本来以为可以对未版本跟踪的文件批量删除。
3.3:Branch分支
新建分支(需要选择其实版本,可以根据版本号、其他分支或标签来选择)、检出分支(觉得切换分支更合适)、重命名分支、删除分支、当前分支Reset操作(会丢弃所有未提交的变更,包括工作区和索引区,当然了,有弹出框提示危险操作)。
3.4:Commit
1)new Commit:创建一次新的提交,常规提交方式;
2)Amend last commit(修改上次提交):用于合并多次提交,针对为push操作前多次提交合并操作比较有用,在上次提交已经push的情况下可能会造成提交记录变乱;
3)rescan:用于扫描当前git库的变更,包括工作区和索引区的变更;
4)Stage To Commit:添加选中的变更文件到索引区;
5)Stage changed files to commit:添加所有改变文件到索引区;
6)Unstage from commit:将选择文件的变更从索引区撤回工作区;
7)revert changed:撤销工作区选择文件的变更,文件将还原为未修改之前的状态(但是未进行版本跟踪的文件无法直接删除,未跟踪的文件究竟怎么删除,莫非一定要一个个去找出来删除?很遗憾没在这个工具中找到);
8)show less context、show more context:调整文件差异对比区显示内容;
9)sign off:在commit信息输入框中添加提交人信息,减少手动输入;
10)Commit:提交当前变更到本地;
3.5:merge
1)local merge:分支本地合并操作,弹出操作框,选择要合并的版本(可以选择版本号、本地分支、远端分支或者标签,他们的最新状态都指向了一个确定的版本)。要注意A和并B与B合并A是不同的,在A分支上操作合并B会将B中的所有的文件与A做差异运算(这个与方向无关),差异部分会汇总到A中,此时B的状态不会变更。
2)abort merge:终止merge操作。在合并分支操作中产生冲突,当前git库状态设置为mergeing状态,要求解决冲突后进行其他操作。合并出现冲突时,在文件差异对比的区域会显示出冲突的部分,右键可以启动自定义的差异合并工具。
3.6:remote
远端操作相关,多个远端仓库时,呈现多个远端仓库
1)fetch:从远端仓库获取更新;
2)remove remote:删除与远端库链接;
3)add:添加远端git库,弹出添加操作框,输入远端库名(可自定义)和仓库链接(初始clone代码时的连接);
4)push:推送本地变更到服务器,会弹出push操作的操作框,与基本按钮区的push按钮操作相同。推送时git的默认设置只允许推送到与本地分支同名的远端分支,如果远端只有一个主分支,本地自建了多个分的的话无法直接完成推送。可以自行修改,不过风险比较大。
5)delete branch:删除远端分支,弹出选择框,选择远端库、远端分支名及操作选项。
tools:自定义操作命令
2:操作流程
1:远程仓库操作
创建自己的分支 master主分支:自己的分支合并到主分支应该由管理员合并
2:本地仓库
fetch:会更新远端的仓库到本地工作区,每次push操作前或者每天新来都应该先fetch代码再合并到自己的本地分支中 push:每次push前,先fetch代码再合并到自己的本地分支中
|