Git   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何正确使用Git Git?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经使用Git进行尝试,但我很确定我没有正确使用它。


我想知道如何使用Git来变得更专业。


我想从没有安装Git的情况下开始。


当然,我已经阅读了手册,并Googlesearch了很多,但我不知道如何正确使用它。

现在我们有一个专门的网站unix服务器。


我使用PHPStorm在Windows上进行networking开发,我有一个大学在.htaccess中做了301redirect的小改动。


也许将来我们会和另外一个程序员一起扩展。


我希望能够跟踪他所做的更改,或者只是添加一些redirect到.htaccess的Git矫枉过正?

在这种情况下使用git的最佳方式是什么?


主人应该在哪里等等


我对Git很新,所以请具体说明一下。


我也听说,我有可能在上网之前审查我大学的提交,我想这样做。

我也需要用新的代码更新大师或将它们全部分开,等等。

版本控制的生产环境

Clearcase – 查看何时创build视图

最喜欢的服务器操作系统和小型项目的源代码

在单人devteam(.NET平台)中进行版本控制,部署和持续tesTing

@H_703_0@mercurial:“被遗弃的交易发现 – 运行汞恢复”。 恢复不起作用

具有grepfunction的Windows单用户SCM?

@H_703_0@mercurial unbundle错误:中止:…未知的捆绑软件版本20

将Github远程添加到GitKraken

什么git服务器解决scheR_757_11845@e使用Windows和活动目录?

clearcase:在Windows中共享dynamic视图

让我用简单的话来解释一下。

Git不一定只用于多用户环境,但它对于单个开发人员来说是相同的或更有用的独立的。 开始的时候,我们应该首先利用它的所有功能作为一个单独的开发者,

让我们在本地系统上创建git仓库(使用git init),开发人员(主人或分支,稍后会虑),在开发周期中,他/她应该识别非常小但完整的工作单元工作,即按钮被添加和它做一些基本的功能,它应该上演(git增加)和提交(git提交)与适当的细节。 我作为一个开发者曾经在本地仓库每天做5到10次提交。

第二阶段的好处是,我们可以随时及时回溯..如果有任何问题,在几秒钟之内..本地存储库,因为它是在提交编号。 3或承诺没有。 10(git checkout ..提交号码)在调试过程中非常有用,并有清晰的图像供进一步规划。 即使在任何特定的提交(git diff将显示任何2个提交之间的差异)之后提出的任何问题都将非常容易。 所以我们通过git对我们的文件有很好的控制。

现在,而不是在主人工作,我们可以喜欢在分支工作。 例如,在每个新功能之前,可以创建一个分支(git branch branch_xyz,git checkout branch_xyz),并且可以使某些规则(而不是git)像(代码审查完成,单元测试,组件测试)没有完成,代码将不会被合并到掌握审查员,测试人员或感兴趣的项目团队,可以拉他们的系统中的具体分支..为他们的活动。 无论是其主分支还是分支,提交逻辑保持不变,第2点中提到的所有内容都将保持不变。 我们想要标识为里程碑的少数提交可以被标记,即(git tag -a build_3.4 -m“build description)。 毕竟验证后,代码可以合并到主(git checkout master,git merge branch_xyz)

上面提到的所有功能都是可以在本地系统上使用的,没有任何服务器。 现在在多用户环境中可以选择在我们自己的服务器上存储库,或者我们可以使用库如github或bitbucket ..我使用bitbucket为我的代码..它没有必要只推动最终修改主存储库(不要等待)…我们可以继续推动我们的变化..到主要的仓库(git push -all -u remotename),就像我们在本地做的一样,如果在本地它是分支的一部分,在主要也是同一分支的一部分,如果在本地,它被合并到主,而不仅仅是它将合并到主服务器。

其他想要工作的团队成员..他们可以使用git clone或git pull命令从主资源库获取副本。并且发布他们可以遵循第2点提到的相同步骤。

Git在多用户环境中

Q – 哪里是创建主(使用git)的最佳地点是在托管网站的专用服务器上,还是在内部单独安装的服务器上?

你不需要把它叫做master,因为git服务器和git节点,它们都会有主(主代码)和分支(WIP代码),下面会解释

主Git服务器不需要是专用的服务器,也不需要在托管网站的同一台机器上。 只要您可以下载和准备用于部署的构建,它就可以在任何地方。 但是,主服务器/存储库不应该用于开发目的,但不是必要的。

Q – 创建主人后,我需要克隆主人到我自己的电脑,并开始发展。 之后,我需要将更改提交到git-server?

让我们假设你的团队中有3名成员1)Ron – 开发者2)Gerard-开发者3)Sytse – 测试者,你当前的版本是build_4_01,坐在主分支的主要git服务器上,截至今天,你的团队成员都没有他们的系统。

从这三个人开始,他们已经在他们的本地系统上安装了git,并从主服务器克隆它。 现在他们在master分支下的本地git仓库中有build_4_01

接下来,Ron被要求开发下一个将被命名为build_4_02的功能

Ron首先将在他的本地git仓库(branch_build_4_02)中创建一个分支,并在branch_build_4_02下完成代码

build_4_02下共有20个小功能,Ron在10天内就完成了。

在完成每个小功能之后,Ron用来在本地资源库上执行提交

在每次提交之后,或者在一天结束的时候,Ron都会将代码(git push)推送到主服务器(不用担心,主服务器不会干扰现有的代码,Ron推送的内容在branch_build_4_02分支中,主人和分支有效地分开)

在这10天的开发时间里,Ron多次希望Gerard帮忙检查代码,或者在技术上帮助他

因此Gerard需要Ron的所有最新代码。 每天早上Gerard都会执行git pull(命令),并且会将他的本地git存储库与Ron所做的所有最新更改同步,Gerard可以在branch_4_02中看到它们

编码完成后(build_4_02)Sytse(Tester)被告知,他也像Gerard在他的本地系统中执行了一个pull请求,并得到了最新的代码

Sytse在测试服务器上部署了git分支4_02的代码,并完成了测试

在测试过程中,他提出了一些缺陷,但罗已经修复了这些缺陷,并将代码推到git服务器上,Sytse将它们拉到本地git上进行重新测试

毕竟经过测试,收到测试签名后,再进行生产部署。 守则仍然在分支4_02

Ron现在指出他的本地git在10天内(git checkout master)第一次掌握并且合并分支到master(git merge branch_4_02),他还给了一个特定的标签来保存叫做build_4_02的提交,所以每个人都可以通过名字来识别

具体的提交看起来像3003b9fe441dd6a2e3c1410880c3a86b496fcb27但可以标记用户友好的名字,即4_01_code_completed,test_completed,4_01_prod

Ron再执行一次(git push ..),所以同样的变化也会反映在服务器上。

Gerard负责Prod的部署,他在本地系统上执行git pull,在master分支上执行最新的代码,他为特定的提交(Ron完成)执行prod部署,并将其命名为build_4_02。

团队中的每个人都在他们的本地git仓库上执行了一个git pull request,与prod同步。

Sytse有时需要在生产问题上工作,因此想要回到构建401,他只是检查具体的提交,并将在他的系统中构建4_01代码

Q – 之后,我需要与git-server上的主服务器合并?

合并将在Sytse收到签名后在本地git上发生,但会在合并之后再次被推送到服务器,正如ron所做的那样

问 – 我如何从git-server将更改推送到网站上?

它和你现在的程序一样,只是区别在于人推送到网站的变化,在他的本地PC上会有git,在把更改推送到网站之前,他会确保他得到最新的代码,并且有正确的提交(tag build_4_02 ),和Gerard所做的一样

问答

Q – 所以要确保git主服务器只是用于接收和发送构建。 我可以简单地使用一个单独的电脑作为git主服务器,只有git和centos上安装?

是的,一个单独的服务器可以被使用,但不是强制性的,然而不是调用它的工作来接收和发送构建,这将是更合适的说,它将是集中的代码库,其中团队可以得到任何版本的代码

Q – 当Ron做了git合并branch_4_02的变化与本地git和git主服务器合并? 和thanx这些合并的git主服务器将始终是最新的?

不,合并只发生在本地系统,从一个分支到另一个分支,或从子分支到主分支,反之亦然。 要发送给主服务器,git push命令应该在本地服务器上执行,它将给开发者提供更多的控制权,只有当开发者要求的时候才会发送到服务器。 进一步使用push命令,开发人员也必须提及远程服务器@L_675_71@。

Q – 开发人员提供标签4_02_prod是否是最好的方式,部署更改的人拉动代码并给它一个标签4_02_build?

理想情况下,开发者(Ron)完成代码并将其标记为4_02_prod,应该像Prod一样不加修改在这种情况下,部署者不需要标签。 但是在某些情况下,部署人员(Gerard)在Ron变更的基础上进行更改,他必须标记好的标题,例如4_02_deployed。 好处是在生产过程中,一个简单的差异(git diff)将清晰地表明2个提交/标记间的变化,从而缩小问题的范围,进一步提交/标记可以被测试人员拉动以进一步调查。

Q-当一切完成后,你应该@L_618_87@分支,还是保留所有内容

在Ron合并分支4_02后,立即给它一个标签4_02_prod,并将其推送到Prod,branch_4_02必须被@L_618_87@。 因为相同的内容将在标签4_02_prod的主分支中可用。 在这段时间以后保持分支是没有好处的,但如果有人错误地使用它,将会有很大的风险,这将是一团糟。

要@L_618_87@它,Ron将能够看到2个分支1)一个在本地系统上使用命令git branch 2)另一个在主服务器上使用命令git branch -r。 两者都必须@L_618_87@,然后按git push,所以主服务器也是同步的。

Q – 你提到我需要@L_618_87@两个地方的分支。 本地和主服务器上的一个。 但是,当我在本地@L_618_87@分支,并在主服务器上,我仍然可以恢复到旧版本?

是的,如果从本地git和主服务器中@L_618_87@了分支,那么您仍然拥有所有版本的代码,因为在@L_618_87@分支之前,该分支自己被合并为主,并被标记为4_02_prod。

这是git的美丽,只需使用一个命令git checkout开发者可以获得任何版本的代码,只要它被提交。

在目前的情况下,Ron只需要执行一个命令git checkout tags/build_4_02_prod ,他的系统中就会有旧的代码。 他可以通过执行一个命令git checkout master来获得最新的代码

问 – 你说先@L_618_87@构建,然后推(从你的主人我猜),所有完成之前部署到网站/实时代码

是分支@L_618_87@后,我再次推,所以服务器是同步的。 为了更安全的一面,我做2合1完成后,以完成2)分支@L_618_87@完成后。 如果以某种方式将分支@L_618_87@而不是其他分支,则在随后的推送过程中将继续给出错误

通常master branch是认分支,并且总是需要使用所有稳定的代码进行更新。 工作流程看起来像 –

一个或多个开发人员创建并切换到来自主服务器的新分支。 然后做改变和测试代码。 在完成任务(并且代码稳定)后,创建一个pull request , merge这些代码与主分支merge 。

现在,主人已经有了一些新的变化,所有其他开发人员将主人的最新代码带入他们正在处理的不同分支。

当需要发布一个版本的产品时,在master分支提交一个tag (eg v1.0.0 )。 然后从该标签创建一个新的分支(例如release-v1.0.0 )并释放产品。

大佬总结

以上是大佬教程为你收集整理的如何正确使用Git Git?全部内容,希望文章能够帮你解决如何正确使用Git Git?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: