有关Git的输出说明
你为什么想要学习Git呢?
通常我们无意中使用Git。我在制作应用程序时意外删除了GitHub桌面上的主分支,感到非常困惑。因此,我重新学习了Git并进行了输出。
也许我其中有些错误,请在评论中指出,谢谢。
Git是一种版本管理工具。
一开始我甚至都不知道Git到底是什么,但是Git是一个版本管理工具。
假设一个没有版本管理工具的世界
A和B一起制作了一个应用程序。然而,他们发现了一处需要修改的地方,于是A将”应用程序X”的名字保存为”应用程序X修订版”,并与B分享了这个数据。随后又发现了需要修正的地方,于是B在修正应用程序后将其保存为”应用程序X最新版”。就这样,A和B反复进行应用程序的修正,最终不知道哪个才是最新版本的应用程序了。
嗯,这只是一个极端的例子,但是可以通过一些创意解决这个问题,比如每次修改应用程序时加上日期。然而有时也会相反。修改了之后,又想恢复到原来的版本。但是很难确定文件名到底修改了多少。这种情况似乎很常见。如果是少数人一起开发的话,或许还能解决,但是一旦开发规模变大就不行了。
另外,还有不能同时进行工作的缺点。比如A正在制作查询表单的时候,B却无法同时制作首页。这样做就使得团队开发变得没有意义,而且非常耗时。为了能够同时进行工作并且提取出与之前应用程序的更改差异,版本管理工具就变得非常重要了。
有版本管理工具的世界。
因此,版本控制工具被使用,而Git是其中之一。(Git和GitHub是不同的东西。我直到现在才知道这一点……)
当使用Git时,原始数据被保存在服务器上。然后将原始数据下载到自己的电脑上进行操作。这就是git clone的功能。A和B都使用git clone来进行各自的操作。此时,操作将在本地环境而不是服务器上进行。然后,当完成一定的工作时,执行git add。通过执行git commit来保存更改。(起初我以为git add和commit几乎是一样的,但当然不是。在这里不再详述)。保存变更的内容,也就是变更点对原始数据进行更新,我们称之为git push。想象为将变更点推送出去!此时,变更点将保存到原始数据中。然后A会告诉B,“我在Git上进行了推送”。B想要将A的变更点反映到自己的电脑上。这就是git pull。意思是拉取变更点!由于保存了差异,所以可以确认何时做出了什么样的更改,并且在需要时可以回溯到过去。
现在,有一个疑问。什么是合并(マージ)和拉取请求(プルリク)?假设A和B正在一起工作。但是B有些粗心,不小心删除了A创建的询问表单并进行了push操作。那么这会造成困扰,对吧?就算可以回溯,每次都要面对粗心带来的麻烦也不可取。于是A对B说了一句:“在push之前要先确认一下!”这时B要进行的操作就是拉取请求,也就是pull request。这是向他人询问“我可以将改动pull过来吗?”之意。然后A回答道:“好的,没问题”,这样才能进行合并(merge)。通过负责人确认并进行合并操作,可以避免基本数据混乱。
Git的世界仍然很深。
因为变得太长了,所以我暂时停止写作,但本次假设是两人一起工作来写的。若要实现大规模项目或从客户的角度确保安全,仅仅写作中提到的是无法实现的。因此,前辈和现任工程师能够产生出了许多出色的想法和技术,并让我们普通人(尽管我们还无法完全掌握)享受到它们。
在进行应用程序开发时,很容易只顾着让其“能够运行很有趣!”,而忽视了原理、原则和周边知识。从现在开始,我希望意识到并学习抓住本质。我相信这将成为我的力量。