Git笔记(一)

Git是一个分布式版本控制,个人在自己PC上工作,提交,当需要将工作分享的时候,只需连接到特定仓库即可,每个人都是独立开发,不存在强制性集中管理,同时不会因为中央服务器崩溃而导致的整个版本系统的崩溃.

 

Git的几种工作模型:

⑴访问模型:当使用Git时,对于你的电脑来说你使用的是集中式系统开发方式,仓库中的更改全部存放在你的机器上,当你完成一些工作,然后将这些工作保存到你本地的仓库,当你准备好讲工作共享给别人时,连接到远程仓库,将你特定分支的副本推送上去。同时Git不提供访问控制,允许任何开发者拥有仓库的完整读写权限。在最外层,通过登录来限制访问。

⑵分散贡献者仓库的模型:开发者创建一个补丁,将补丁提交给评审者,评审通过的,评审将其交给核心维护人员,核心维护人员提交到本地仓库,然后推送到集中式代码托管系统。

⑶适合并列贡献者仓库的模型:在并列系统中,上游项目保留了完整的控制,决定谁拥有项目主仓库的写入权限。每个贡献者使用代码托管系统将项目克隆,派生至他们的本地仓库,贡献者更改本地的副本,然后通过合并请求或拉去请求提交这些更改。

⑷共同维护模型:每个开发者在本地完成自己的工作,然后推送至项目共享的仓库。

 

分支策略:分支用于隔离一块代码上产生的不同的想法。

每个Git仓库都有一个提交库,提交通过元数据相互连接,每个提交包含一个指向自身父提交的引用。Git中的分支实际上是指向特定提交的命令指针(HEAD)。当你签出分支时,你将提交对象中存储的数据复制到你的工作目录中,当工作被复制到工作目录中,你可以进行任何操作,并且将更改作为一个新的提交对象存储到本地仓库。命名指针会自动更新并指向你刚创建的提交对象,同时你的分支也将更新。

为了防止命名分支和使用分支的冲突,使用约定来解决问题,约定来决定什么时候创建分支,合并。约定包含两种分支,一种是长期活跃的公开分支,短暂的私有分支。公开分支扮演代码中介的角色,可以并入大量开发者的贡献。短期分支作用用于隔离一个新想法的开发过程,例如修复bug等,新增功能等。

 

几种约定:

⑴主线分支开发:这个策略中只有少量的分支,开发者将他们的工作提交到一个中央分支,这个分支可以随时部署。在Git中称为master

⑵功能分支部署:所有的新工作都在一个功能分支上完成,这些分支通过一个集成分支与其他开发者完成的工作保持同步,集成分支用于接受新的功能。

四种专门命名的集成分支:maint分支包含了Git最近一次稳定发布的代码以及小数点版本的额外提交;master分支用于应该进入下一次发布的提交;next用于测试一些主题在进入master分支后的稳定性;pu分支建议的更新分支包含尚未准备好合并的提交。

 

创建本地仓库方法:

  1. 一个克隆的仓库

mkdir test

cd test

git clone https://github.com/xxx.git

git init

git status

  1. 一个空目录

mkdir empty-repository

cd empty-repository

git init

ls –al

 

查看历史记录:git log 用来查看提交记录,如果过多,可以使用git log –oneline

列出分支:git branch --list

列出所有分支:git branch –all

列出远程分支:git branch --remotes

更新远程分支列表: get fetch

使用不同的分支:git checkout branchName

创建分支:

首先签出你想作为起点使用的分支:git checkout master

然后创建分支:git branch newBranch_1

签出新分支: git checkout newBranch_1

 

从主分支创建一个新的开发分支:git checkout –b newBranch_1 master

 

在仓库中添加修改:将修改保存到你的Git仓库,需要两步,1.显示的暂存到索引,2.保存到你的仓库。

将特定的已修改添加至你的仓库: git add README.md  git add branch-naming-rules.png

递归的添加指定路径下的所有文件: git add <directory_name> /*

添加扩展名为.svg的所有文件: git add *.svg

暂存git中所有已知的且在上次提交之后编辑过的文件: git add –update

添加所有修改过得文件: git status   git add –all

一旦将变更添加至缓存区,就必须提交这个更改,如果继续编辑刚才添加到索引中的文件,则执行commit命令时,仅会添加之前暂存过得更改。

在仓库中添加部分文件的修改:git add –patch filename

通过—patch添加文件的过程分为多个步骤,首先初始化这个过程,然后从列表中选出一个选项,来决定如何创建你的补丁,将会看到以下提示,将这些修改添加至暂存区(y),不改变这个补丁片段(n),修改过的行将会以一个-(删除的行)或一个+(新增的行)开头。

 

从暂存区移除文件:git status    git reset HEAD xxx.xx

 

忽略文件:创建一个全局设置来忽略这些文件,首先,告诉Git忽略文件的列表放在什么位置: git config –global core.excluedsfile ~/.gitignore,然后可以更新这个文件,每行一个文件名,可以使用确切的文件名,也可以使用通配符。

 

使用标签:标签用于定位指定的提交。

最近提交的快速列表: git log –oneline

单个提交的日志详细信息:git log id号 –max-depth=1

使用show命令以文本形式列出该提交中发生的修改:git show Id号

为某个提交对象添加一个新的标签: git tag import fao4c30

列出所有标签: git tag

一旦标签被创建,就可以通过标签所在的位置查看这个提交。

 

连接远程仓库:当你创建一个本地仓库,是无法将你的工作共享给别人,因为他们没有与之关联的远程仓库,或者你没有远程仓库的写入权限。为了上传你的作品,你讲需要在gtilab上创建一个新的项目,并将它与你的一个已有的仓库关联起来。

具体过程:1、创建新项目: 登录gitlab账户前往信息中心页面,然后创建一个new project,

2、添加第二个远程连接。每个项目对应一个独立的仓库,在gitlab中创建一个新的仓库,mkdir my-git

cd my-git

git init

touch README.md

git add README.md

git commit –m “first commit”

git remote add origin git@gitlab.com:xxxxxx.git

git push –u origin master

如果本地已经创建过一个仓库,则可以从git remote开始。

 

当选择一个远程连接加入到仓库中时,必须为它分配一个别名,默认情况下,这个别名是origin,当然可以用任意的名字。

使用自定义的名称在本地仓库添加远程连接:

git remote addmy_gitlab git@xxx.git

 

列出连接至你当前仓库的远程仓库:git remote –verbose

 

推送你的更改:在你第一次推送分支时,需要明确告诉Git将这些东西放在什么位置。

使用push命令上传分支: git push

如果没有设置上游分支,则会得到错误的消息:

git push –set-upstream my_gitlab 1-process_notes

 

分支维护:将工单分支并入master分支并删除本地分支和工单分支的远程副本。

将工单分支并入你的主分支:

git checkout master 

git merge newBranch_1

 

删除这个分支的本地副本:

git branch –delete newBranch_1

 

对远程仓库进行清理,删除已经并入master分支的远程分支:

git push –delete my_gitlab newBranch_1

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
10-24 13:36
门头沟学院 Java
Zzzzoooo:更新:今天下午有hr联系我去不去客户端,拒了
点赞 评论 收藏
分享
勤奋努力的椰子这就开摆:美团骑手在美团工作没毛病
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务