ホームページ >バックエンド開発 >PHPチュートリアル >Git の詳細な説明 - チームが成果物を迅速に開発

Git の詳細な説明 - チームが成果物を迅速に開発

黄舟
黄舟オリジナル
2017-03-21 09:56:381444ブラウズ


私は大学の 3 年生です。私は学校に独自の学生チームを持っています。プロジェクト開発では、開発効率を向上させるために Git テクノロジーが使用されています。ここで git についてまとめます。誰もが相互に通信することを歓迎します。

git を学ぶ前に、まず git のいくつかの基本概念を理解しましょう

1 git のワークフローを以下の図に示します

Git の詳細な説明 - チームが成果物を迅速に開発

2。 : git init を使用して git ウェアハウスを初期化すると、.git 隠しディレクトリが生成され、プロジェクト全体のファイル変更記録などの情報が保存されます。

    ワークスペース: ローカル git ウェアハウスが配置されているディレクトリとして理解でき、プロジェクト ディレクトリでもあります。
  • ステージング領域: git add コマンドによって追加されたすべてのファイルはステージング領域に保存されます。ステージング領域は、実際には .git ディレクトリの下のインデックス ファイルです。
  • リポジトリ: つまり、git ウェアハウス全体です。
  • 3 つの関係: ワークスペースは開発ディレクトリです。すべてのファイル編集は git add を通じてステージング領域に追加され、その後 git commit コマンドを通じてローカル git リポジトリに送信され、リモート git にプッシュされます。 git Push によるリポジトリ。
  • 通常の git ウェアハウスの構造は次のとおりです
  • git@git.xxx.com:user/project_name.git

    |-master (マスター ブランチ、オンライン コードと同期)
  • |-develop (開発ブランチ、関数開発が完了した後、最初に開発にマージされ、次に開発がマスターにマージされます)
|-feature (一時的なブランチ (関数ブランチ)、たとえば、特定の関数を開発するために、新しいフィーチャー ブランチを作成し、完了後にフィーチャー ブランチを開発にマージできます)

|———— 機能/update_online_pay_api

|———— 機能/add_new_feature..

|———— …
|-release (一時ブランチ(プレリリースブランチ)、開発とテスト後、テスト用に新しいリリースブランチを作成し、完了後にマスターにマージして開発します)
|———— release/update_online_pay_api
|———— …
|-hotfix (一時的なブランチ (ホット修正ブランチ)、通常、緊急のバグ修正などの短期的なタスクに使用されます) 修正が完了すると、マスターにマージされて開発されます)

|———— hotfix/ handler_pay_bug
|————…

ブランチの命名規則について: 一時的なブランチは「/」または「-」などで区切ることができますが、必須の要件はありません。

商品が届いたら要件に応じて、開発を開始するときの git プロセスは次のようになります。

まず、リモートの git ウェアハウスにあるプロジェクトをローカルに同期する必要があります。 プロセスは次のとおりです。

cd ~/workspace/git/ // 进入你个人的工作目录
mkdir project_name // 新建一个目录用于存放代码,名称可以和远程仓库名称一样
cd project_name // 进入你新建的目录
git init // 使用git初始化这个目录为一个git仓库
git remote add origin git@github.com:22th/oh-my-zsh.git // 关联本地仓库到一个远程仓库
git fetch --depth=1 // 更新远程仓库的一些信息到本地,比如分支信息等
git checkout -b master origin/master // 检出一个分支master并关联远程的master分支
git pull // 更新本地仓库代码

上記のプロセスを通じて、同期できます。リモート プロジェクトをローカルにコピーします。デフォルトはリモート マスター ブランチです。通常、この権限はありません。 コードをローカルに同期した後、ビジネス ニーズに応じて新しい開発ブランチを作成する必要があります。たとえば、新しい機能を開発する場合は、feature-xxx を作成します。バグを解決したい場合は、hotfix-xxx ブランチを構築できます。新しいブランチをローカルで作成することはお勧めできません。git ウェアハウス管理のバックグラウンドから新しいブランチを作成して、ローカルでチェックアウトする必要があります。管理バックグラウンドで新しいブランチを作成するのは非常に簡単なので、詳細は説明しません。 次に、新しく作成したブランチをローカルで確認します。コマンドは次のとおりです。

その後、独自のブランチで開発、テスト、送信を行います。

git add <file> // 将工作区修改添加到暂存区,加上 --all 参数表示将所有修改添加到暂存区
git commit -m “msg” // 将暂存区的修改添加到版本库
git push -u origin feature-xxx // 将本地仓库中的修改推送到远程
git status // 查看当前工作区间状态
git log // 查看历史commit
git checkout -- <file> // 用最后一次commit的文件替换当前工作区间的文件
git reset --hard // 丢弃工作区间所有修改,回滚到上一个commit状态
git checkout <版本号> // 回滚到指定版本

To関数を開発するには、オンラインでテストして公開する必要があります。プロセスは次のとおりです
git checkout -b feature-xxx origin/feature-xxx1. 主にテスト用に、feature-xxx ブランチに基づいて新しい release-xxx ブランチを作成します。

2. release-xxx テストが OK になったら、それをマスターおよび開発ブランチにマージできます。通常、Git ウェアハウス管理バックグラウンドを通じてマージ リクエストを送信し、関連する管理担当者による確認を待ってからマージします。マージリクエストを送信する前に、まずマスターブランチをチェックして、マスター上で新しく変更されたコードが同期していることを確認してください。マスターをマージするときに競合が発生する可能性があります。競合するファイルを見つけて解決し、コミットします。競合の形式は次のとおりです。

<<<<<<< HEADln -s ../statics xxx
=======ln -s ../statics statics
>>>>>>> master

ここで、««« はブランチ内のコードを表します。は、master ブランチ内のコードを表します。次に、競合を手動で解決するプロセスは、保持したいコードを確認し、他のコードを削除することです

つまり、ローカル コードを保持したい場合は、次のようになります:

<<<<<<< HEAD (删除)
ln -s ../statics xxx (保留)
======= (删除)
ln -s ../statics statics (删除)
>>>>>>> master (删除)

保留 «««git commit -am “解决冲突”。
3、好了,其他的工作就是运维人员来处理了。一般是这样的,release-xxx分支测试完成并解决所有冲突后,运维发布人员merge到master分支,然后通过 git d<a href="http://www.php.cn/wiki/109.html" target="_blank">if</a>f 608e120 4abe32e --name-only | xargs zip update.zip 命令打包差异文件,然后发布这个差异文件包就可以啦,不需要所有文件都覆盖线上文件。


到这里,整个git项目开发流程就已经非常清楚了。git还有很多高级功能,比如文件对比、文件历史修改记录、关联多个远程仓库等等需要你慢慢去摸索了。使用git要灵活运用分支,因为git新建切换分支的成本非常低,因为git新建分支不是想svn那样吧整个目录复制一遍,然后通过索引文件等更高级的方式来处理,效率高太多。

在推荐个git图形化管理工具:
source tree, mac和windows都有。


If you liked this article and think others should read it, please follow webff

以上がGit の詳細な説明 - チームが成果物を迅速に開発の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。