Git是一种版本控制工具和命令
首先
Git是一种源代码版本管理系统(分布式版本控制系统)的其中一种。
・Git保存更新历史,无需备份文件复制
・记录有“何时”、“谁”、“在哪里”作出的更改信息,一目了然
・有编辑记录,可以恢复到过去的某个状态
・可以显示更改了哪些地方的差异
・若在自己编辑某文件期间,其他人进行了编辑,则在上传时会显示警告(冲突),可以避免不知不觉地覆盖其他人的更改。
有诸如此类的优点。
出现的分支
・master:发布用的最新源代码分支
・develop:开发用分支
・work_develop:工作用分支
仓库
记录文件和目录状态的位置。
它以更改历史的形式保存,并通过将要管理的目录放置在存储库中,可以记录该目录内文件和目录的更改历史。
存储库分为以下两种类型。
・远程仓库:用于放置在服务器上,供多人共享使用。
・本地仓库:用于每个人在各自PC上使用。
平时的工作会使用本地存储库在个人电脑上完成,当需要将其发布时,会将其上传到远程存储库。此外,还可以通过远程存储库获取他人的工作内容。
分支
这是为了将工作历史进行分叉记录而设计的工具。
☆为什么要使用它?
– 可以同时进行多个任务,而不受其他分支的影响
– 通过按任务单位记录历史,以便在以后查看时更加清晰易懂
换句话说,在多人开发时,每个人都可以在不受其他工作者影响的情况下进行工作。
从远程分支创建本地分支。
git checkout -b work_develop origin/develop
将创建的本地分支注册到远程
git push -u origin work_develop
查看分支列表
git branch -a
克隆
为了在本地进行工作而复制远程存储库,我们执行克隆操作。
克隆后,可以完整地下载远程存储库的内容,并在本机上创建一个本地存储库。
(当要加入一个正在进行中的项目时,可以进行克隆)
克隆的存储库也会复制修改记录,所以可以像原始存储库一样查看历史记录。
从远程复制克隆
git clone https://github.com/XXXX/XXXXXX.git
※https://github.com/XXXX/XXXXXX.git 的部分是仓库的链接。
提交
要记录文件或目录的添加或修改操作到代码库中,需要执行提交操作。在执行提交操作之前,需要将修改的文件反映到索引中。
将更改反映到索引中并进行提交。
执行操作,将文件更新内容反映到称为“暂存区”(也称为“已暂存区”)的“暂存文件夹,其中存放着需要一次性提交的文件。”(如果对每个文件都进行提交,那将会非常麻烦…..)
git add ファイル名
如果执行”git add .”,可以将本地仓库内的所有更改一次性反映到索引中。
将git add的文件提交。
提交后,在存储库内,将创建记录自上次提交状态至当前状态的差异的内容。
这次提交以时间顺序连接存储在存储库中,通过跟踪最新的内容,可以了解过去的更改历史和其内容。
git commit
在进行提交时,您将被要求填写提交信息。由于提交信息为必填项,如果您不填写任何内容并执行提交操作,则提交将失败。
提交信息对于其他人查看提交更改的内容,以及稍后自己查看历史记录时非常重要,因此应该写下清晰易懂的注释来描述变更内容。
在Git中,通常以以下形式撰写注释:
第1行:对提交所做更改内容进行总结
第2行:空行
第3行及之后:阐述更改的原因。
推送
为了将本地仓库的更改上传到远程仓库并进行共享,我们执行的操作称为推送。
执行推送操作后,自己的变更记录将被上传到远程仓库,远程仓库中的变更记录将与本地仓库的变更记录保持相同的状态。
git push origin master
在执行git push后的origin master是指将本地仓库的代码推送到名为origin的远程仓库中的master分支。
如果本地历史记录与远程历史记录发生冲突,则会出错,推送将失败。
冲突
当本地历史记录与远程历史记录发生冲突时发生。
# ブランチをdevelopに切替
git checkout develop
# リモートの状態を反映させて最新にするためにpullする
git pull origin develop
# 作業ブランチに切替
git checkout work_branch
# developをマージ
git merge develop
※「CONFLICT (add/add): Merge conflict~」というエラーが出る
# 状態を確認する
git status
然后,会显示出发生冲突的文件,然后我们修复那个文件。
(我平常使用的编辑器是Visual Studio Code,因为它可以清晰地标识出发生冲突的部分,并且可以选择两个修复版本中的哪一个,非常方便,所以推荐使用w)
如果进行修正后再次进行 “add ⇒ commit ⇒ push ” 操作,则可以顺利地推送,那就OK!
拉
当在与其他人共享远程仓库并进行多人合作时,由于每个人都在向远程仓库推送变更内容,因此我们需要将其他人推送的变更内容合并到自己的本地仓库中以进行更新。执行这个操作的过程就是拉取(pull)。
拉取会从远程仓库中下载最新的变更历史记录,并将其合并到自己的本地仓库中,使源代码保持最新的状态。
git pull origin develop
“stash”(隐藏物)
「啊,搞错了工作分支…」
「我正在这个分支上工作,但可以在另一个分支上进行工作。工作进展非常不完整,所以不想进行提交…」
在这种情况下,可以使用存储功能。
使用存储功能可以暂时保存尚未提交的更改。
可以通过存储功能保存更改,进行其他工作,然后恢复保存的更改并继续工作。
# 変更を一時退避
git stash
# コメントを付けて変更を一時退避
git stash save [コメント]
# 退避させた変更の一覧
git stash list
# 最新の退避させた変更を戻す(戻した内容は退避リストに残留)
git stash apply
# 退避リストから指定して退避させた変更を戻す(戻した内容は退避リストに残留)
git stash apply stash@{0}
# 最新の退避させた変更を戻す(退避リストから該当変更を削除)
git stash pop
# 退避リストから指定して退避させた変更を戻す(退避リストから該当変更を削除)
git stash pop stash@{0}
# 消したいstash名を指定して退避リストから削除する
git stash drop stash@{0}
# 退避リストを全削除する
git stash clear
追加信息✐
有时根据心情更新。