<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>其他 &#8211; 記下來</title>
	<atom:link href="https://noter.tw/code/other-program/feed/" rel="self" type="application/rss+xml" />
	<link>https://noter.tw</link>
	<description>一路上踩到的坑、遇到的問題，一點一滴記下來，希望能幫助到需要的人~</description>
	<lastBuildDate>Fri, 15 Jul 2022 05:42:22 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.3</generator>

<image>
	<url>https://noter.tw/wp-content/uploads/cropped-old-1130742_1920-1-32x32.jpg</url>
	<title>其他 &#8211; 記下來</title>
	<link>https://noter.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>PHP Client 操作 Google APIs (1) 開啟與測試 API</title>
		<link>https://noter.tw/8940/google-apis-1-api-explorer/</link>
					<comments>https://noter.tw/8940/google-apis-1-api-explorer/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Fri, 16 Jul 2021 06:07:47 +0000</pubDate>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[技巧分享]]></category>
		<category><![CDATA[技術相關]]></category>
		<category><![CDATA[程式開發]]></category>
		<category><![CDATA[Google APIs]]></category>
		<category><![CDATA[Google 服務]]></category>
		<category><![CDATA[API Console]]></category>
		<category><![CDATA[Google Search Console API]]></category>
		<category><![CDATA[Try this API]]></category>
		<category><![CDATA[教學]]></category>
		<category><![CDATA[Google Cloud Platform]]></category>
		<category><![CDATA[Enable Google API]]></category>
		<category><![CDATA[分享]]></category>
		<category><![CDATA[記下來]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=8940</guid>

					<description><![CDATA[<p>應該很多人不知不覺中身邊就充滿了 Google 服務吧！舉凡是 Gmail、Google Maps、Google 雲端硬碟、Google 表單、Google 試算表、Google 文件 &#8230;&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/8940/google-apis-1-api-explorer/" data-wpel-link="internal">PHP Client 操作 Google APIs (1) 開啟與測試 API</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>應該很多人不知不覺中身邊就充滿了 <a href="https://www.google.com.tw" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">Google<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 服務吧！舉凡是 Gmail、Google Maps、Google 雲端硬碟、Google 表單、Google 試算表、Google 文件 &#8230; 等，這些服務除了透過對應的軟體或網頁使用外，Google 其實也提供了很多 API 服務，通稱 Google APIs ，讓使用者可以透過這些 API 來打造自己的 Google 服務。</p>



<span id="more-8940"></span>



<p>可能有很多人不懂 Google 提供的 APIs 能做什麼，以及有哪些 Google APIs，只要到  <a href="https://console.cloud.google.com/apis/library" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">Google Cloud Platform<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 就可以看到 Google 提供的所有 API，所有你想得到的 Google 服務，幾乎都有對應開放的 API，差別在於每個 API 使用的次數跟頻率有所限制，還有另一個是 Google 開放的 API 裡面「並不會」接露所有功能。</p>



<p>舉個 Google Maps 的例子，使用 Google Maps 時除了地圖、店家資訊及使用者評論等等，中間還有一個熱門時段，讓使用者可以清楚知道哪個時段會比較多人，就可以避開熱門時段，挑個比較少人的時間去，好友當時就是因為 Google Maps API 沒有提供這個功能，因此小蛙才幫忙用爬蟲的方式解決這個問題。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLWL_oDuen_qBzMNbYdZK5dhO7gPNmPDQkcPM0YOc_46CTNvh5cV6oVjYGXRHD7ekPEe1Lw5OmF94ZQQqDYMvSJxaujLwDnv92xvapzUX-BPmA4-8Louw_SVq-JArilQ06Rd6kKTpTX_xAFOxr4WdrajSQ=w407-h208-no?authuser=3" alt="Google Maps 熱門時段" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>連上 Google Cloud Platform 可以看到很多各式各樣你想得到或想不到的服務</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXUsdR4ePOskw_zEHJYvimSQypoWYO6SsQTD6GCfBn6TOnBp50Mu9kpk1sQsZjWsoek5gK97lV6STAFv6rbfXUxj0MX5odaaPe7FbgmLnK2DwaRwRa_FtH9SCpU4vzF0ngk26UUXoUV6b_iO_-QKmSmlA=w1236-h850-no?authuser=3" alt="Google Cloud Platform APIs" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<h2 class="para wp-block-heading">開啟 Google APIs</h2>



<p>小蛙這系列都會用 Google Search Console 來當作範例，其他 API 原理基本上都差不多，只是呼叫的方式跟屬性設定有所不同，開始吧！</p>



<p>首先連到 <a href="https://console.cloud.google.com/apis/library" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">Google Cloud Platform<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 從上方(1)選取一個要使用 API 的專案(2)，如果沒有專案的話可以建一個新的(3)</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLWFT6CzR0i2Y5RvptdJooiHeuWYJLa7EbiOyChF7LY63w0QzMae8BYIKyPwP5Tcxn1ILM4PUPjALTw0CZuZaQnTGKF8jxIdyKugcy5svmcP6WmWXXyBjBGgOaBqAgPysbu_djST_i4EzwLzx6wdwsbdDg=w762-h377-no?authuser=3" alt="Google Cloud Platform Select a project" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>搜尋要開啟的 API (1)，點進去 (2)</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLW4Vne9XTUwgclQcPfh-XHpx00_pbkYywARPO_gNv-EVd2KrabcLVd0RdBz7rJjHp3oCkqgdNWZFvs352bKRPaiP0Oy4flXRGspXFdyalenpxAUT5VfDVvkAiXvtZ7a8PxYwwKL4FBkFhg_kb1TDqh3Hg=w919-h278-no?authuser=3" alt="Google Cloud Platform Keyword Search" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>點上面的 Enable 就可以開啟該 API 了，下面有一些 API 說明可以看看</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLWi6McQq0WSsUZC7MEdkczS6MDRqTsVFeOBaGMVp-5VmydFdyy5-gQ_0KE5xp8LhKKVRuojmN1nL2OrbVIcPdKOagGyeiTqhTc4wkFlVE512UfAvFPrbTLYFGXu8P0r9Zy11TNJ8CvTyqNw9X4Q56Y_qg=w623-h327-no?authuser=3" alt="Google Cloud Platform Enable Google Search Console API" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>API 成功開啟後，左邊的 Credentials 可以設定 API 認證的部份，不過這裡小蛙到第三篇文章的時候才會提到</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXOt8yYkjQHUScF-vTgRlnDwHy29kzvsUPc67IWmku0F-PJw8x6DenuKslF_-aXSdWuyyIMA7hRdHMby60lryZki-FUsn8weuVBjpE4cfOfPFjOuVL2rCIU7bFpVcAD18TLZQxjZOKeWx_wVr6ls4OYMg=w261-h272-no?authuser=3" alt="Google Cloud Platform Side Menu" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<h2 class="para wp-block-heading">測試 API 說明</h2>



<p>回到剛剛啟動 Google Search Console API 的頁面，這次點選右邊 TRY THIS API</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXx468noxoeQwCFdKEpcfnNexiK7agGdBvKk5AcjoYvG3ZBvCBAriIh_E2yLQ3VwFrjfXEX7Zct9erixYXxQaFRUk0C9JQvy1uRNIAlsexI8SuNvrVBkfOk1OxuYcPcmP7kEJhX-NZwzqR0d2bMLNgZXQ=w627-h314-no?authuser=3" alt="Google Cloud Platform TRY THIS API" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>開出來的頁面是 Search Console URL Testing Tools API，不過小蛙這邊要用的不是這個 API，而是能取得 Google Search Console 裡面資料的 API，因此點選左上角 (1)</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXV055sMST_O7FgfVpcCjl9ww6oiyueSOOn2mHoM0f9-hN6JHFnaEmpEaBvzWHJYG5oKIp2BnhCmtHUB7MCat4URiREEfSY563bVnknM-A6KtBl_Iox4O4yVVhq6wQ5W9-_hTs-ahuujZTCNnfuDHauCA=w958-h468-no?authuser=3" alt="Google Search Console APIs &gt; URL Testing Tools API (Beta)" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>回到 Google Search Console APIs 首頁後進入 Search Console API</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXlQmNV8QP7dfkg7b7EaLqAbcQCEb_V_svlc2FIWesq5oQ5tPrQ-qT57-BJgddhP59FtcFshozITznDW5GnJc4iHE3KIG7NgUkaVvN1HmqFwhBeoVDm01PBNcgiZ1s6MvciXfjjUDME7t704kMSWT7OkA=w931-h573-no?authuser=3" alt="Google Search Console APIs" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>找到下面的 Try it in your browser</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLVMbYziFhx3dxR9F28UWx3wkZcDtQVnU14rkAAvySVGeMi2SYWSORxoKQMnfn3Tk1FTBeikKbnx3EptXdL3aV0O63oUIicb5md0O0_yST37E2gSzS99p_RchRGxak1URCTXXwv6LJCwx7UfYqIvkHN97A=w622-h449-no?authuser=3" alt="Try out the Google Search Console API" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>接著隨便點一個 api 功能</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXDc68UJJAMl16ASnRzF8bAdvriWeX0bDNvdn08Ix_acpps0V_WZqNOWLuELUoSTT142lzEx4xMyRsOzfcFWvJb3mcLFJ3s-CwPcusGSI_L_-1HsfosX2Fuc8HUJmKEcG_S3kzHaGxsdc3pXniJ4YhDdg=w942-h602-no?authuser=3" alt="Google Search Console APIs &gt; query" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>右邊會開啟一個側欄，這邊就是 Google API 的測試工具了，點選右上角的方框 (1) 可將螢幕放大顯示更多資訊</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXUAKERyhTBWcoSSDmfbzvN4NI5IyDm8Jmr4k9d7Xt6UKiNxcpH8DIHCLa2GTvUrI7ysY7btQVxiMNryzY9r0hQY3vgRCMn9AA1gzB484MlYDFPwIbo0LEbtSjLoM7a_L6U4b7G4eMaYcXtN0375WA27g=w399-h811-no?authuser=3" alt="Google Search Console API &gt; Try this API 1" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>Google Search Console 原本就是以「網站」為目標，因此必填欄位是在 Search Console 裡面的網址 (1)，Request body 的部份填入查詢的參數 (2)，輸入完成後點選 EXECUTE 執行 (3)，下圖 (4) 的地方是真正發送出的 request</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXfwzWrEja8fKmnA0PPyyLqnv0hqZIswmWbV97eqVRpX7fAk4vHt1JQBIu_i_3jIown7IT0Jr7P56sYOVnAk4yY7oEbq8OA1nFGdSc419FBdiu8gXA8DwggmMlcMlFS9nMJ28SOj5zH_OPzAUp-FllncQ=w1150-h697-no?authuser=3" alt="Google Search Console API &gt; Try this API 2" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<h2 class="para wp-block-heading">使用測試 API</h2>



<p>小蛙用記下來 https://noter.tw/ 測試一下 (1)，填入一些必要的參數 (2) 取得 2021-05-01 ~ 2021-07-01 區間的資料，只要回傳前 10 筆就好，點選 (3) 的驚嘆號會顯示有哪些屬性可以設定，確定沒問題後 EXECUTE 送出吧！注意：這邊的 siteUrl 一定要是自己的 Search Console 原本就有的資源才可以，也就是說不能去查別人的，不然就太恐怖了！</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXxhOOd5fA43lv7nABBi3L9YJ0TMd1_RH-6LG6nHEuiVKZvXEIYlEAro-ZsxEmcdprhPEv1131GnKUla5crI-SUTM1bZhSiEvoCdKkZODHyzCo6QI9CkQmxU_jrnVQOP82lhdS9e4XUDIltV50aDK4sNQ=w456-h734-no?authuser=3" alt="Google Search Console API &gt; Try this API 3" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>點了 EXECUTE 後瀏覽器跳出登入畫面，有些可以透過 API Key 來使用，有些則是必須透過 OAuth 2.0 才可以使用，選擇一個帳戶來使用吧～</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLViqpex5Vq1tiC-5zHF84HkfewOulCuvoms8WvDbmNC4WNlWfxr_sW0PPedt4Mu8xhel_4oidPPm9R2hXS72UjvzhglZyQkLW6Bxwets6MXnrEZDseuzGfqeJGoHbzMTB8bGlqWvCzMQrJUotyxb5P4Fg=w601-h660-no?authuser=3" alt="SSO Login" width="451" height="495" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>執行成功後，右上角會產生實際送出的 API</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLWo34bRGyi15XFeIn6p1_egFpEDrUG3ikfHlhF965Ueu3yLUlrIWZ9b-wIeHxmnBBs8D_BAM0csiOvvRG7SNF_3h5bUP7ASDDHrayL9UipS_4SBTUCTqxLyOg9gVWWrxdSTnlZeLmaZQ9vv7OZBoQvhHg=w669-h144-no?authuser=3" alt="Google Search Console API &gt; Try this API curl" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>右下角則是顯示回傳結果，可以看見在這區間被點擊的次數為 46,812 次，搜尋曝光有 838,324 次 &#8230; 等</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLWxy3xjsu-hb7cDZQIT8Rl9UDH1sK4KH2pHha0SQZJ2j-Gx0hoH17yjA9IcrgZ781Ni2TmIRYxVhQB6vCXA1o_hTPLtbz0NuoygsNvgDDE9UMYdddV9inyb_23hknSkRHRdPyjGaajrWZwL0Xi6lsXd-A=w305-h288-no?authuser=3" alt="Google Search Console API &gt; Try this API results 1" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p class="withcode">這看起來好像只能取到很基本的資料？不～來把參數做個調整，加上 <code>aggregationType</code> 及 <code>dimensions</code> 的設定回傳各個頁面的資訊～</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXhpOjk2WH7VGQn7KoPm1_AHInljAqKgu7x02VM2i2Ub_LHWQI_IP_LKNDX7kaq5xR-txJd7KZCqXLkWgR-fCfdwbdgmI_m1A4qbNn5Ib3YaglDKf9ebSdK0kHabszrHEXwQUtwp3UEf0DE2fEqbJr1CQ=w425-h332-no?authuser=3" alt="Google Search Console API &gt; Request body" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>查詢結果會根據區間內的點擊數排列，看看剛剛我們加的 dimensions 都在 keys 陣列裡面，包含搜尋字串、頁面、來源國家及日期</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLWDbjBcT2NFEMd4IepyzdVoo5dVJG04OrpMRY4NLTX9sAsLa6Gb1P4jEuTDIaN_F-7oUr0e08VRkmnCgbazYvQIOKJwnu3vfhJHV0TxZR72RbFvDXm54KEJVP0ZDCZKCzhDL324dX-m4w7sf23b5dtDaw=w437-h322-no?authuser=3" alt="Google Search Console API &gt; Try this API results 2" title="PHP Client 操作 Google APIs (1) 開啟與測試 API"></figure></div>



<p>Google Search Console API 啟用跟測試就到這邊，下一篇將繼續介紹環境設定部份。</p>



<p id="block-c58a739f-b4e1-42ae-8530-5e20da347253"><strong>Google 系列文章：</strong></p>



<ul class="wp-block-list" id="block-2b1f3c8f-95c7-4eff-8105-53dea9d75e5e"><li><a href="https://noter.tw/8940/google-apis-1-api-explorer/" data-wpel-link="internal">PHP Client 操作 Google APIs (1) 開啟與測試 API</a></li><li><a href="https://noter.tw/8944/google-apis-2-google-api-client-for-php/" data-wpel-link="internal">PHP Client 操作 Google APIs (2) 安裝 Google API Client for PHP</a></li><li><a href="https://noter.tw/8942/google-apis-3-service-account-credentials/" data-wpel-link="internal">PHP Client 操作 Google APIs (3) Google APIs Credentials 介紹</a></li><li><a href="https://noter.tw/9035/google-apis-4-google-search-console-apis/" data-wpel-link="internal">PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs</a></li><li><a href="https://noter.tw/8604/google-formranger/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google 表單應用：設定選項次數上限</a></li><li><a href="https://noter.tw/9049/copy-a-google-form/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">複製 Google 表單 (Copy A Google Form)</a></li><li><a href="https://noter.tw/8358/google-adsense-tax-w8ben/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google Adsense: 向 Google 提交稅務資料 | 填寫 W-8BEN 稅務表單</a></li><li><a href="https://noter.tw/4946/google-%e9%9b%b2%e7%ab%af%e5%a4%96%e5%b8%b6%e6%9c%8d%e5%8b%99-takeout%ef%bc%9a%e8%bc%95%e9%ac%86%e6%89%93%e5%8c%85%e9%9b%b2%e7%ab%af%e7%a1%ac%e7%a2%9f%e3%80%81%e7%9b%b8%e7%b0%bf-%e7%ad%89/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google 雲端外帶服務 (Takeout)：輕鬆打包雲端硬碟、相簿 … 等資料</a></li><li><a href="https://noter.tw/4394/google-%e7%9b%b8%e7%b0%bf%e5%8f%96%e5%be%97%e7%9c%9f%e5%af%a6%e5%9c%96%e7%89%87%e4%bd%8d%e7%bd%ae%ef%bc%88%e6%8f%92%e5%85%a5%e5%9c%96%e7%89%87%e5%88%b0%e6%96%87%e7%ab%a0%ef%bc%89/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google 相簿取得真實圖片位置（插入圖片到文章）</a></li><li><a href="https://noter.tw/4267/gdirve-%e8%ae%93%e4%bd%a0%e5%9c%a8-linux-%e6%96%87%e5%ad%97%e4%bb%8b%e9%9d%a2%e4%b9%9f%e8%83%bd%e5%a5%bd%e5%a5%bd%e4%bd%bf%e7%94%a8-google-drive/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">gdirve 讓你在 Linux 文字介面也能好好使用 Google Drive</a></li><li><a href="https://noter.tw/4302/microsoft-office-word-%e7%84%a1%e6%b3%95%e9%96%8b%e5%95%9f-google-drive-%e8%b6%85%e9%80%a3%e7%b5%90/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Microsoft Office Word 無法開啟 Google Drive 超連結</a></li></ul>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/8940/google-apis-1-api-explorer/" data-wpel-link="internal">PHP Client 操作 Google APIs (1) 開啟與測試 API</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/8940/google-apis-1-api-explorer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHP Client 操作 Google APIs (2) 安裝 Google API Client for PHP</title>
		<link>https://noter.tw/8944/google-apis-2-google-api-client-for-php/</link>
					<comments>https://noter.tw/8944/google-apis-2-google-api-client-for-php/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Tue, 13 Jul 2021 07:40:57 +0000</pubDate>
				<category><![CDATA[程式開發]]></category>
		<category><![CDATA[技巧分享]]></category>
		<category><![CDATA[技術相關]]></category>
		<category><![CDATA[其他]]></category>
		<category><![CDATA[分享]]></category>
		<category><![CDATA[記下來]]></category>
		<category><![CDATA[Google APIs]]></category>
		<category><![CDATA[Google Search Console API]]></category>
		<category><![CDATA[Google Cloud Platform]]></category>
		<category><![CDATA[Google Client]]></category>
		<category><![CDATA[教學]]></category>
		<category><![CDATA[Google APIs Client Library for PHP]]></category>
		<category><![CDATA[composer]]></category>
		<category><![CDATA[安裝]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=8944</guid>

					<description><![CDATA[<p>Google APIs 開啟的方法可參考上一篇文章：PHP Client 操作 Google APIs (1) 開啟與測試 API，這篇文章繼續記錄使用 Google API Client 來操作 G&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/8944/google-apis-2-google-api-client-for-php/" data-wpel-link="internal">PHP Client 操作 Google APIs (2) 安裝 Google API Client for PHP</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>Google APIs 開啟的方法可參考上一篇文章：<a href="https://noter.tw/8940/google-apis-1/" data-wpel-link="internal">PHP Client 操作 Google APIs (1) 開啟與測試 API</a>，這篇文章繼續記錄使用 Google API Client 來操作 Google Search Console APIs。</p>



<span id="more-8944"></span>



<p>上一篇文章我們示範了怎麼使用 Google 提供的 API 測試工具，透過這些工具產生相關 REST 指令，同時 Google 也提供 Java 及 Python 版本的使用範例，只要點進 <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/quickstart/quickstart-python" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">Google Search Console APIs<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 就可以看到。</p>



<p>但是小蛙今天要使用的不是 Java 及 Python，而是 PHP 版本的 Client (beta)，只要點進 <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/libraries#php" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">Install Client Libraries<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 拉到下面可以看到各種版本的 Client，將頁籤切換到 PHP，或是其它自己擅長的語言～點選 Get the latest&nbsp;<a href="https://github.com/google/google-api-php-client" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">Google Search Console API client library for PHP (beta)<span class="wpel-icon wpel-image wpel-icon-6"></span></a></p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLX9CBG9wuYorqrlOuCWgAYOQlWD82BHOBZepvZ2VXxMkut7YR6XT8G_1yJcbLGiPo5QQ7pMEOgs2dPkAVgPNkSQ4SBFdWRI6pPB9nJnwH2beMtZGnff-N_Hg24WyUPHNUVk_YaAX0ia77X13Okfa1xW4w=w877-h158-no?authuser=3" alt="Google API Client PHP " title="PHP Client 操作 Google APIs (2) 安裝 Google API Client for PHP"></figure></div>



<p>接著開啟 Github 頁面，PHP 版本需在 5.6.0 以上才可以使用，並且需要透過 composer 安裝，沒有 composer 的話可參考<a href="https://getcomposer.org/doc/00-intro.md" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">這邊<span class="wpel-icon wpel-image wpel-icon-6"></span></a>。安裝好後使用以下指令安裝</p>



<pre class="wp-block-preformatted withcode">composer require google/apiclient:^2.10</pre>



<p>安裝完 PHP Client 後，在要使用 Google APIs 的 PHP 最上面加上</p>



<pre class="wp-block-preformatted withcode">require_once '/path/to/your-project/vendor/autoload.php';</pre>



<p>就可以載入 Google API 的相關工具了，如果沒有或真的不想裝 composer 的話，其實也有提供直接下載的版本，只要到 <a href="https://github.com/googleapis/google-api-php-client/releases" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">這邊<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 去下載適合的版本，解壓縮後同樣在要使用 Google APIs 的 PHP 加入上面 require_once (注意路徑正確性) 就可以使用 Google API 了。</p>



<p>接著建一個 PHP 檔案，新增一個 Google_Client() 物件出來，如果下載或設定正確的話，畫面上應該空白不會噴任何錯誤</p>



<pre class="wp-block-preformatted withcode">&lt;?php
 ini_set('display_errors', '1');
 error_reporting(E_ALL);
 // 換成自己的實際路徑
 require_once '../googleapiclient/vendor/autoload.php';
 $client = new Google_Client();
?&gt;</pre>



<p>如果出現下面這種錯誤，可能是沒安裝正確或是路徑指定錯誤，再檢查看看是哪裡有問題。</p>



<pre class="wp-block-preformatted withcode"><strong>Fatal error</strong>: Uncaught Error: Class 'Google_Client' not found in /var/www/xxx.php:6 Stack trace: #0 {main} thrown in&nbsp;<strong>/var/www/test/xxx.php</strong>&nbsp;on line&nbsp;<strong>6</strong></pre>



<p>這篇文章比較短，只著重在 PHP 版本的安裝，下一篇文章再繼續介紹怎麼使用 OAuth 登入並查詢 Google Search Console APIs 的相關資料！</p>



<p id="block-c58a739f-b4e1-42ae-8530-5e20da347253"><strong>Google 系列文章：</strong></p>



<ul class="wp-block-list" id="block-2b1f3c8f-95c7-4eff-8105-53dea9d75e5e"><li><a href="https://noter.tw/8940/google-apis-1-api-explorer/" data-wpel-link="internal">PHP Client 操作 Google APIs (1) 開啟與測試 API</a></li><li><a href="https://noter.tw/8944/google-apis-2-google-api-client-for-php/" data-wpel-link="internal">PHP Client 操作 Google APIs (2) 安裝 Google API Client for PHP</a></li><li><a href="https://noter.tw/8942/google-apis-3-service-account-credentials/" data-wpel-link="internal">PHP Client 操作 Google APIs (3) Google APIs Credentials 介紹</a></li><li><a href="https://noter.tw/9035/google-apis-4-google-search-console-apis/" data-wpel-link="internal">PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs</a></li><li><a href="https://noter.tw/8604/google-formranger/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google 表單應用：設定選項次數上限</a></li><li><a href="https://noter.tw/9049/copy-a-google-form/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">複製 Google 表單 (Copy A Google Form)</a></li><li><a href="https://noter.tw/8358/google-adsense-tax-w8ben/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google Adsense: 向 Google 提交稅務資料 | 填寫 W-8BEN 稅務表單</a></li><li><a href="https://noter.tw/4946/google-%e9%9b%b2%e7%ab%af%e5%a4%96%e5%b8%b6%e6%9c%8d%e5%8b%99-takeout%ef%bc%9a%e8%bc%95%e9%ac%86%e6%89%93%e5%8c%85%e9%9b%b2%e7%ab%af%e7%a1%ac%e7%a2%9f%e3%80%81%e7%9b%b8%e7%b0%bf-%e7%ad%89/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google 雲端外帶服務 (Takeout)：輕鬆打包雲端硬碟、相簿 … 等資料</a></li><li><a href="https://noter.tw/4394/google-%e7%9b%b8%e7%b0%bf%e5%8f%96%e5%be%97%e7%9c%9f%e5%af%a6%e5%9c%96%e7%89%87%e4%bd%8d%e7%bd%ae%ef%bc%88%e6%8f%92%e5%85%a5%e5%9c%96%e7%89%87%e5%88%b0%e6%96%87%e7%ab%a0%ef%bc%89/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google 相簿取得真實圖片位置（插入圖片到文章）</a></li><li><a href="https://noter.tw/4267/gdirve-%e8%ae%93%e4%bd%a0%e5%9c%a8-linux-%e6%96%87%e5%ad%97%e4%bb%8b%e9%9d%a2%e4%b9%9f%e8%83%bd%e5%a5%bd%e5%a5%bd%e4%bd%bf%e7%94%a8-google-drive/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">gdirve 讓你在 Linux 文字介面也能好好使用 Google Drive</a></li><li><a href="https://noter.tw/4302/microsoft-office-word-%e7%84%a1%e6%b3%95%e9%96%8b%e5%95%9f-google-drive-%e8%b6%85%e9%80%a3%e7%b5%90/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Microsoft Office Word 無法開啟 Google Drive 超連結</a></li></ul>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/8944/google-apis-2-google-api-client-for-php/" data-wpel-link="internal">PHP Client 操作 Google APIs (2) 安裝 Google API Client for PHP</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/8944/google-apis-2-google-api-client-for-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs</title>
		<link>https://noter.tw/9035/google-apis-4-google-search-console-apis/</link>
					<comments>https://noter.tw/9035/google-apis-4-google-search-console-apis/#comments</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Tue, 13 Jul 2021 07:30:16 +0000</pubDate>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[網頁後端]]></category>
		<category><![CDATA[技術相關]]></category>
		<category><![CDATA[教學]]></category>
		<category><![CDATA[分享]]></category>
		<category><![CDATA[記下來]]></category>
		<category><![CDATA[Google APIs]]></category>
		<category><![CDATA[Google Cloud Platform]]></category>
		<category><![CDATA[Goolge Search Console APIs]]></category>
		<category><![CDATA[開發]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=9035</guid>

					<description><![CDATA[<p>這系列的最後一篇，原本以為已經寫完了，今天發現這篇躺在草稿裡 &#8230; 還不清楚怎麼回事的朋友可以看前面幾篇 PHP Client 操作 Google APIs (1) 開啟與測試 API 、 &#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/9035/google-apis-4-google-search-console-apis/" data-wpel-link="internal">PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>這系列的最後一篇，原本以為已經寫完了，今天發現這篇躺在草稿裡 &#8230; 還不清楚怎麼回事的朋友可以看前面幾篇 <a style="font-size: revert;" rel="noreferrer noopener" href="https://noter.tw/8940/google-apis-1/" target="_blank" data-wpel-link="internal">PHP Client 操作 Google APIs (1) 開啟與測試 API</a> 、 <a style="font-size: revert;" rel="noreferrer noopener" href="https://noter.tw/8944/google-apis-2/" target="_blank" data-wpel-link="internal">PHP Client 操作 Google APIs (2) 安裝 Google API Client for PHP</a> 及 <a href="https://noter.tw/8942/google-apis-3-service-account-credentials/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">PHP Client 操作 Google APIs (3) Google APIs Credentials 介紹</a>，這篇記錄如何使用 Google Search Console APIs。 </p>



<span id="more-9035"></span>



<p>我們在前幾篇裡面瞭解了 Google APIs、安裝 Client for PHP 以及申請了 Google APIs Credentials 裡的 Service Account 並下載了 JSON (一定要好好保存，遺失了只能刪除再產生一次，沒辦法再次下載喔)，開始使用！</p>



<h2 class="para wp-block-heading">Google APIs 大致流程</h2>



<p>使用 Google APIs 大致上的流程都差不多</p>



<ul class="my-li bg-darkblue wp-block-list"><li>載入 Google APIs Client for PHP (或其他語言版本)</li><li>加入 Service Account</li><li>建立並初始化物件</li><li>設定篩選條件</li><li>取得並解析結果</li></ul>



<p>只要把握這幾個原則，之後若要使用 Google APIs 就不會再霧沙沙了 (但 API 還是要查，每個 API 的 Scope 跟條件設定上會有很大的不同)</p>



<h2 class="para wp-block-heading">載入 Google APIs Client for PHP</h2>



<p>這個在前面  <a style="font-size: revert;" rel="noreferrer noopener" href="https://noter.tw/8944/google-apis-2/" target="_blank" data-wpel-link="internal">PHP Client 操作 Google APIs (2) 安裝 Google API Client for PHP</a>  的時候已經講過了，在程式碼裡面很簡單，開頭放上這行就可以了，為了更方便 debug，可以多設定兩行條件，只要使用上出現錯誤，就會直接在網頁上呈現</p>



<pre class="wp-block-preformatted withcode">// 顯示錯誤
ini_set('display_errors', '1');
// 所有錯誤都顯示
error_reporting(E_ALL);
// 載入 Google Client
require_once '../googleapiclient/vendor/autoload.php';</pre>



<h2 class="para wp-block-heading">加入 Service Account</h2>



<p>小蛙前面提到這次要做的事情是讓程式不經人工自動執行，而 Search Console 能使用的方式只有 OAuth 與 Service Account (忘記差別的這邊請 <a href="https://noter.tw/8942/google-apis-3-service-account-credentials/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">PHP Client 操作 Google APIs (3) Google APIs Credentials 介紹</a>)，要不需人工介入只有 Service Account 了，而要讓 Service Account 存取 Search Console 資料的話，就必須將該帳號加入 Search Console 裡面囉！</p>



<p>首先進入 Search Console 要使用的資源，左邊選單下面找到「設定」</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXzIBu7ISSOmPScFy7qVA96IJdZN6hn_2sC8u8CAQo6ilW2TSsoE7VnZcq8sj1gRGhJqQ6wc_wjaC6MNwP3aY-rbsd89loU6C4h5Abb520EUYBS_0TD5NMys3eYYxweQuQwqvchEjMtFMJr9_65SCb-QA=w326-h243-no?authuser=2" alt="AM JKLXzIBu7ISSOmPScFy7qVA96IJdZN6hn 2sC8u8CAQo6ilW2TSsoE7VnZcq8sj1gRGhJqQ6wc wjaC6MNwP3aY rbsd89loU6C4h5Abb520EUYBS 0TD5NMys3eYYxweQuQwqvchEjMtFMJr9 65SCb QA=w326 h243 no?authuser=2 PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs" title="PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs"></figure></div>


<p>點擊「使用者與權限」</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXZUyX8xf-BHak-20EBkiO2TFTuTXL_INR2QUGFYk7pHLNsIPtwfApwqJ1xcShRkvqj2low9Iuh4ksHN79DSkUqUjylMiyEd1MMK0DO5P2U1X-ZfMa9lKLLv8EyrMp1-j3pXSYrSGxt8gh5MKlyxeN7ww=w817-h394-no?authuser=2" alt="AM JKLXZUyX8xf BHak 20EBkiO2TFTuTXL INR2QUGFYk7pHLNsIPtwfApwqJ1xcShRkvqj2low9Iuh4ksHN79DSkUqUjylMiyEd1MMK0DO5P2U1X ZfMa9lKLLv8EyrMp1 j3pXSYrSGxt8gh5MKlyxeN7ww=w817 h394 no?authuser=2 PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs" width="613" height="296" title="PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs"></figure></div>


<p>點擊「新增使用者」並把從 GCP Credentials 那邊得到的 Service Account 貼上，權限選擇「完整」</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLXEF6Sy2MrLHsvzAKbOuqRzWdPB-kwXigP9LAgaaBdiHnlavX2vwEvWRLMW6NS4nJi_mkQlhcD0ldCVhN4KoVx_D_azli_64i9YbL1nDF7HEzeBvMSG5mS0gdHUv_YeADHYPcEgZqaWH6uKZFM4gwAj5A=w746-h385-no?authuser=2" alt="AM JKLXEF6Sy2MrLHsvzAKbOuqRzWdPB kwXigP9LAgaaBdiHnlavX2vwEvWRLMW6NS4nJi mkQlhcD0ldCVhN4KoVx D azli 64i9YbL1nDF7HEzeBvMSG5mS0gdHUv YeADHYPcEgZqaWH6uKZFM4gwAj5A=w746 h385 no?authuser=2 PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs" width="560" height="289" title="PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs"></figure></div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" src="https://lh3.googleusercontent.com/pw/AM-JKLVdteLUJJMU-tjYJzk3UQDQIhDk0n7Q36DgbhQKKbu3n57YYr2H1aPYTP0krgU5rBXxSGz8_z40ZmiJEOCaGJKCK-XhvCFhYdVza6Zs3z1Y2T5P7DAshqm-rDHu4jGLKaBkisrRs7fcjXUvlPo5Lh56mw=w1004-h385-no?authuser=2" alt="AM JKLVdteLUJJMU tjYJzk3UQDQIhDk0n7Q36DgbhQKKbu3n57YYr2H1aPYTP0krgU5rBXxSGz8 z40ZmiJEOCaGJKCK XhvCFhYdVza6Zs3z1Y2T5P7DAshqm rDHu4jGLKaBkisrRs7fcjXUvlPo5Lh56mw=w1004 h385 no?authuser=2 PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs" title="PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs"></figure></div>


<h2 class="para wp-block-heading">建立並初始化物件</h2>



<p>回到 PHP 的部份加入金鑰及設定 Scope</p>



<pre class="wp-block-preformatted withcode">// 設定金鑰
putenv('GOOGLE_APPLICATION_CREDENTIALS=存放金鑰的路徑/server_secrets.json');
session_start();

// 建立基本 Google Client 
$client = new Google_Client();
// 載入預設金鑰位置
$client-&gt;useApplicationDefaultCredentials();
// 設定 Scope
$client-&gt;addScope([Google_Service_Webmasters::WEBMASTERS_READONLY, Google_Service_Webmasters::WEBMASTERS]);
$client-&gt;setAccessType('offline');
// 建立基本 Google Service Webmasters 物件
$master = new Google_Service_Webmasters($client);</pre>



<h2 class="para wp-block-heading">設定篩選條件</h2>



<p>建立完要用的 Google Service Webmasters 物件之後，對！以前 Google Search Console 叫做 Google Webmaster，雖然我們說要操作 Search Console 但建立的物件跟設定的 Scope 可以看出都還是 Webmasters。</p>



<pre class="wp-block-preformatted withcode">$search = new Google_Service_Webmasters_SearchAnalyticsQueryRequest();
$search-&gt;setStartDate( '2021-07-06' );
$search-&gt;setEndDate( '2021-08-06' );
$search-&gt;setDimensions( ['QUERY'] );
$search-&gt;setAggregationType( 'BY_PROPERTY' );
$search-&gt;setRowLimit(10);</pre>



<p>至於有哪些條件或是要怎麼操作取得自己要的內容，就自己到 <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">API Explorer<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 測試，或到 <a href="https://noter.tw/8940/google-apis-1/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">PHP Client 操作 Google APIs (1) 開啟與測試 API</a> 複習吧！</p>



<h2 class="para wp-block-heading">取得並解析結果</h2>



<p>最後把他們全部串起來～丟回的結果可以先用 print_r 印出來看看，或是直接到 <a href="https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">這邊<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 看回傳的結果 ~</p>



<pre class="wp-block-preformatted withcode">$data = $master-&gt;searchanalytics-&gt;query('https://noter.tw/', $search);

$result = [];
$rows = $data-&gt;rows;
foreach ($rows as $row){
    // 剖析資料
}

</pre>



<p>到這邊基本上就大功告成了，上面的功能是取得網站上特定區間的關鍵字資訊 ~ 需要其他資料的話，釣竿已經在手了，就要靠自己囉！Good Luck ~ </p>



<p id="block-c58a739f-b4e1-42ae-8530-5e20da347253"><strong>Google 系列文章：</strong></p>



<ul class="wp-block-list" id="block-2b1f3c8f-95c7-4eff-8105-53dea9d75e5e"><li><a href="https://noter.tw/8940/google-apis-1-api-explorer/" data-wpel-link="internal">PHP Client 操作 Google APIs (1) 開啟與測試 API</a></li><li><a href="https://noter.tw/8944/google-apis-2-google-api-client-for-php/" data-wpel-link="internal">PHP Client 操作 Google APIs (2) 安裝 Google API Client for PHP</a></li><li><a href="https://noter.tw/8942/google-apis-3-service-account-credentials/" data-wpel-link="internal">PHP Client 操作 Google APIs (3) Google APIs Credentials 介紹</a></li><li><a href="https://noter.tw/9035/google-apis-4-google-search-console-apis/" data-wpel-link="internal">PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs</a></li><li><a href="https://noter.tw/8604/google-formranger/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google 表單應用：設定選項次數上限</a></li><li><a href="https://noter.tw/9049/copy-a-google-form/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">複製 Google 表單 (Copy A Google Form)</a></li><li><a href="https://noter.tw/8358/google-adsense-tax-w8ben/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google Adsense: 向 Google 提交稅務資料 | 填寫 W-8BEN 稅務表單</a></li><li><a href="https://noter.tw/4946/google-%e9%9b%b2%e7%ab%af%e5%a4%96%e5%b8%b6%e6%9c%8d%e5%8b%99-takeout%ef%bc%9a%e8%bc%95%e9%ac%86%e6%89%93%e5%8c%85%e9%9b%b2%e7%ab%af%e7%a1%ac%e7%a2%9f%e3%80%81%e7%9b%b8%e7%b0%bf-%e7%ad%89/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google 雲端外帶服務 (Takeout)：輕鬆打包雲端硬碟、相簿 … 等資料</a></li><li><a href="https://noter.tw/4394/google-%e7%9b%b8%e7%b0%bf%e5%8f%96%e5%be%97%e7%9c%9f%e5%af%a6%e5%9c%96%e7%89%87%e4%bd%8d%e7%bd%ae%ef%bc%88%e6%8f%92%e5%85%a5%e5%9c%96%e7%89%87%e5%88%b0%e6%96%87%e7%ab%a0%ef%bc%89/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Google 相簿取得真實圖片位置（插入圖片到文章）</a></li><li><a href="https://noter.tw/4267/gdirve-%e8%ae%93%e4%bd%a0%e5%9c%a8-linux-%e6%96%87%e5%ad%97%e4%bb%8b%e9%9d%a2%e4%b9%9f%e8%83%bd%e5%a5%bd%e5%a5%bd%e4%bd%bf%e7%94%a8-google-drive/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">gdirve 讓你在 Linux 文字介面也能好好使用 Google Drive</a></li><li><a href="https://noter.tw/4302/microsoft-office-word-%e7%84%a1%e6%b3%95%e9%96%8b%e5%95%9f-google-drive-%e8%b6%85%e9%80%a3%e7%b5%90/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Microsoft Office Word 無法開啟 Google Drive 超連結</a></li></ul>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/9035/google-apis-4-google-search-console-apis/" data-wpel-link="internal">PHP Client 操作 Google APIs (4) 使用 Google Search Console APIs</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/9035/google-apis-4-google-search-console-apis/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains</title>
		<link>https://noter.tw/6581/godaddy-%e6%8e%b0%e5%95%a6%ef%bd%9e%e5%be%9e-godaddy-%e7%a7%bb%e8%bd%89%e7%b6%b2%e5%9f%9f%e5%88%b0-google-domains/</link>
					<comments>https://noter.tw/6581/godaddy-%e6%8e%b0%e5%95%a6%ef%bd%9e%e5%be%9e-godaddy-%e7%a7%bb%e8%bd%89%e7%b6%b2%e5%9f%9f%e5%88%b0-google-domains/#comments</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Sat, 23 Nov 2019 15:07:48 +0000</pubDate>
				<category><![CDATA[技術相關]]></category>
		<category><![CDATA[其他]]></category>
		<category><![CDATA[2019]]></category>
		<category><![CDATA[搬域名]]></category>
		<category><![CDATA[分享]]></category>
		<category><![CDATA[從 GoDaddy 轉出]]></category>
		<category><![CDATA[怎麼]]></category>
		<category><![CDATA[轉入 Google Domains]]></category>
		<category><![CDATA[域名]]></category>
		<category><![CDATA[實測]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[感想]]></category>
		<category><![CDATA[網域]]></category>
		<category><![CDATA[怎麼移轉網域]]></category>
		<category><![CDATA[Godaddy]]></category>
		<category><![CDATA[轉移]]></category>
		<category><![CDATA[教學]]></category>
		<category><![CDATA[Google Domains]]></category>
		<category><![CDATA[心得]]></category>
		<category><![CDATA[Google 網域]]></category>
		<category><![CDATA[搬網域]]></category>
		<category><![CDATA[whois]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=6581</guid>

					<description><![CDATA[<p>因為氣氣氣氣氣，聯邦信用卡莫名被 GoDaddy 請款（盜刷？資安漏洞？）這件事，雖然可能是因為小蛙自己的密碼太薄弱被踹破，到現在想起來還是覺得恐怖，於是決定搬到 Google Domains 了。 &#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/6581/godaddy-%e6%8e%b0%e5%95%a6%ef%bd%9e%e5%be%9e-godaddy-%e7%a7%bb%e8%bd%89%e7%b6%b2%e5%9f%9f%e5%88%b0-google-domains/" data-wpel-link="internal">GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>因為<a href="https://noter.tw/6572/%e6%b0%a3%e6%b0%a3%e6%b0%a3%e6%b0%a3%e6%b0%a3%ef%bc%8c%e8%81%af%e9%82%a6%e4%bf%a1%e7%94%a8%e5%8d%a1%e8%8e%ab%e5%90%8d%e8%a2%ab-godaddy-%e8%ab%8b%e6%ac%be%ef%bc%88%e7%9b%9c%e5%88%b7%ef%bc%9f%e8%b3%87/" data-wpel-link="internal">氣氣氣氣氣，聯邦信用卡莫名被 GoDaddy 請款（盜刷？資安漏洞？）</a>這件事，雖然可能是因為小蛙自己的密碼太薄弱被踹破，到現在想起來還是覺得恐怖，於是決定搬到 Google Domains 了。</p>



<span id="more-6581"></span>



<p>小蛙這篇記錄從 GoDaddy 移轉到 Google Domains 的經過，盡可能記錄每一個步驟及遇到的問題，留給有需要的人！（原始的 GoDaddy 使用者依定要開啟二階段驗證啊啊啊！），整體的流程大致上分為</p>



<ul class="my-li bg-darkblue wp-block-list"><li><a href="#step1">GoDaddy 解除鎖定並設定轉出</a></li><li><a href="#step2">Google Domains 設定轉入</a></li><li><a href="#step3">GoDaddy 接受移轉</a></li><li><a href="#step4">Google Domains 驗證 Email</a></li></ul>



<p>讓我們開始吧！</p>



<h2 id="step1" class="para wp-block-heading">GoDaddy 解除鎖定並設定轉出</h2>



<p>登入 <a href="https://tw.godaddy.com/" target="_blank" rel="noreferrer noopener nofollow external" aria-label="GoDaddy (在新分頁中開啟)" data-wpel-link="external" class="wpel-icon-right">GoDaddy<span class="wpel-icon wpel-image wpel-icon-6"></span></a>，右上角選單中進入「我的產品」</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/5ubWU72amtbRl0gCEvN6gWGq6fAwlP2M0iAUdaiUSGLLULGyRTvjCnVOVm5AlyRYeQhUkM5nfMrRN-kTIla6TWzpsBcP4GbeiQ3bvu58xXDhiOOx_Kff1vYqQQfKhsyPKyS76omNO1I8X490nF0QNwD7-hEGfzxHQwmMf8cHPQigq30OFJAFaLz99CYfj7tU-mZntQoTXHJxZqa47BhEFlj8V87cVjDpQOJutoGdZM0D-luDVsJf62RQroAXAgnYnte-Y6PwuEu6eF4udI0w1724xTp9Ciq3IXhXEIcGUjPpY1Mgn61G1Z3uovcnOhySvKnNRebrfOF3InINO6qNT3a_oy6noGF33sXhKHh1Gh0-ifN1uq5kDIp5Z18AyToC9ccfsYFld0AMGdnXQ9nvC3riExxkJADDjYayYSUoZm13fUIyudsLXv77W8jw3zL77alDMV_1ha4JjqVD4B_WOIQH0k0gtitRB-JvGEvBtHsnPmSnHcOW2p4eglSHIa97ZEX4tKgwJIFoGW5hstYgZEzQGYRxxi_OoHU22HFTP0OTY563tv5ZH5mnpApreGxuFdt7mlYdq7pxKmflkMqUnKB77Y_no9bDxCTnYlhmpFgQcON5ZJs676xS4jA7VzRBDLZlbU0TmCpzUF1va17q6lDj1v-JPeQwbc71ZtdH1gyWEe8cUheNs7iCWaJ1LhUQxgplDEIgVC-vLeMXAfSSBDxUB-pUVafgoIBLPdVaOCjvKvMO=w289-h373-no" alt="5ubWU72amtbRl0gCEvN6gWGq6fAwlP2M0iAUdaiUSGLLULGyRTvjCnVOVm5AlyRYeQhUkM5nfMrRN kTIla6TWzpsBcP4GbeiQ3bvu58xXDhiOOx Kff1vYqQQfKhsyPKyS76omNO1I8X490nF0QNwD7 hEGfzxHQwmMf8cHPQigq30OFJAFaLz99CYfj7tU mZntQoTXHJxZqa47BhEFlj8V87cVjDpQOJutoGdZM0D luDVsJf62RQroAXAgnYnte Y6PwuEu6eF4udI0w1724xTp9Ciq3IXhXEIcGUjPpY1Mgn61G1Z3uovcnOhySvKnNRebrfOF3InINO6qNT3a oy6noGF33sXhKHh1Gh0 ifN1uq5kDIp5Z18AyToC9ccfsYFld0AMGdnXQ9nvC3riExxkJADDjYayYSUoZm13fUIyudsLXv77W8jw3zL77alDMV 1ha4JjqVD4B WOIQH0k0gtitRB JvGEvBtHsnPmSnHcOW2p4eglSHIa97ZEX4tKgwJIFoGW5hstYgZEzQGYRxxi OoHU22HFTP0OTY563tv5ZH5mnpApreGxuFdt7mlYdq7pxKmflkMqUnKB77Y no9bDxCTnYlhmpFgQcON5ZJs676xS4jA7VzRBDLZlbU0TmCpzUF1va17q6lDj1v JPeQwbc71ZtdH1gyWEe8cUheNs7iCWaJ1LhUQxgplDEIgVC vLeMXAfSSBDxUB pUVafgoIBLPdVaOCjvKvMO=w289 h373 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>找到要移轉出去的網址，點選旁邊的「管理」</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/dEpv-rONkwzcLnmVCzbrfnkQbJX_butkhM-hNmx-33wWYJwegAFUJPNM7BvLejvJIraKVYYJxAhHS8Tvg1dxr4O5ju1TGg16XNYJLZ4k-WfQzHdoMp0d4OONHGMs0zYsPMQEvqFOJRP1zsrwgfwuPKXoVPuTHb48kNMnkQe7PVq4kmo6pC4sj3PkooEi0WfXW1uX_eJiYVoX_2ts_LX5jsIygyjCFEzvpGGgCi0zyK7Kv_y4tFJpNrzMqZgX3xvuaqZ2j3saXNmWYpYbluYlvsbp10tD4bvBX3TLiiMvHf2TSmWaQEBNZe4k96AK4CnVBO-zmTKBqzjJo5dj98G6cDw0-cH3Et17vCWTaiNRcxHEN2ln66I-xBZbN0dYmlblG9SMMowDY5-OH1RMcM72_XV-eTKx8gaJ9QfJWC7aT1SZomBKIHrqpBPUiQFCTanL5KTVY_oXm8uSffjxEV7Ay_oGrRUNAZEkMRSooesVnpoNRtmCJ0mfq7E0sCR-bLKDS9BM6JIDnxc-J8Q_wKZBIqS9pv1UqDClyPnyetHCl1RdyXv530RmI4igG_26ZKIElomuq4hIQYyrQec5vxOVFEJGADlP9zGxVncuA5RemVOy8Lg4ugXMj4t2P_N7xrbkx3oh_9Ih43pCBKT-7hCx_3QxzIa9GZtsiLfL6HNYXI6j1CFUdGumQzUZXDD35mQjBaSluqOmZZz6eCD5XlHMw0dIBYqg_NIXzQTyqt7jX0gB2JMs=w934-h320-no" alt="dEpv rONkwzcLnmVCzbrfnkQbJX butkhM hNmx 33wWYJwegAFUJPNM7BvLejvJIraKVYYJxAhHS8Tvg1dxr4O5ju1TGg16XNYJLZ4k WfQzHdoMp0d4OONHGMs0zYsPMQEvqFOJRP1zsrwgfwuPKXoVPuTHb48kNMnkQe7PVq4kmo6pC4sj3PkooEi0WfXW1uX eJiYVoX 2ts LX5jsIygyjCFEzvpGGgCi0zyK7Kv y4tFJpNrzMqZgX3xvuaqZ2j3saXNmWYpYbluYlvsbp10tD4bvBX3TLiiMvHf2TSmWaQEBNZe4k96AK4CnVBO zmTKBqzjJo5dj98G6cDw0 cH3Et17vCWTaiNRcxHEN2ln66I xBZbN0dYmlblG9SMMowDY5 OH1RMcM72 XV eTKx8gaJ9QfJWC7aT1SZomBKIHrqpBPUiQFCTanL5KTVY oXm8uSffjxEV7Ay oGrRUNAZEkMRSooesVnpoNRtmCJ0mfq7E0sCR bLKDS9BM6JIDnxc J8Q wKZBIqS9pv1UqDClyPnyetHCl1RdyXv530RmI4igG 26ZKIElomuq4hIQYyrQec5vxOVFEJGADlP9zGxVncuA5RemVOy8Lg4ugXMj4t2P N7xrbkx3oh 9Ih43pCBKT 7hCx 3QxzIa9GZtsiLfL6HNYXI6j1CFUdGumQzUZXDD35mQjBaSluqOmZZz6eCD5XlHMw0dIBYqg NIXzQTyqt7jX0gB2JMs=w934 h320 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>拉到最下面，如果「網域鎖定」的地方是寫已開啟，一定要先按旁邊的編輯，把它改成關閉喔！小蛙就是因為漏掉這一步，結果同樣的步驟連續做了兩次 &#8230; 又因為截圖跟寫文章到一半當機，圖片都沒存到，掉了一些圖片，還好小蛙本來就要移轉兩個網域，所以下面的圖片有的是 crazyall.net 跟 wazai.net 穿插，不過步驟是沒問題的！</p>



<p>確定網域鎖定關閉之後，點選「將網域從 GoDaddy 轉出」</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/eDkIGaY0z4RhXqHvToYcdvnESgzA2v_lYpoyuMcQlK9MvzG_TRSDNML-jJVUFMGxjnbV4pCT6WwyA0Azkj4d7XzYX1iW_C7f3hQjrdWu5waJnxK0dNCDXVuDXeLlk90qV4_CObm1vHISm0vJJ0Xd9J-__DfHtWaXhTmUg7Sswg9wLjiRsnLQgghIGvA_dNRgyhjFCESjxwYhjc8UBpfLSGweyuvSfW8h0Y2ZmAt-sy5910G698-0YIqWk15RRz5re8hAFL3S5SYgohaNTnMKy4FndsH23xhUQMvZZqS_1is_mn5agzqNZhA1f1tBP50FnJXTY8RsYWqndZq4k-efgL69cIn7gHo7wrJaaTTi6GC8iKlpnOKhj6vblkBiu3BORbyHElbY8Vkzsd0yJdk2mqmhX0lWvlxOgNFPbBmUgSw4snUonsAPk-GPgBrh3BE-Ahv0rUz2ojmfpaM9CMfG78CfGoGm1mw5d_szqJSZLwp4Odx0Wk7NQcIwjFQZrMPraE9dEA2nHmzNJ43iyyO3CjM4FxPT6Q2rRHSF-sZ5BrUdcVz9Rz6Kf7NHz0Bd4lDbWenUN1KDi6GuhhfGXMQT3ip0uTz0unr3b_runHp_7PZop1DXEXnmEiF6Gr4u8rBWG2Uwf3QwpSc16OHR3EsR_vSlwXLMOH8U7xObA5zx366n-3W-JAQQCIVUUphx9EQJGdmvSn6vlLk4jZ7aD7FLoQWVk-LpvfQzWuEffzDbZSFfV80F=w656-h630-no" alt="eDkIGaY0z4RhXqHvToYcdvnESgzA2v lYpoyuMcQlK9MvzG TRSDNML jJVUFMGxjnbV4pCT6WwyA0Azkj4d7XzYX1iW C7f3hQjrdWu5waJnxK0dNCDXVuDXeLlk90qV4 CObm1vHISm0vJJ0Xd9J DfHtWaXhTmUg7Sswg9wLjiRsnLQgghIGvA dNRgyhjFCESjxwYhjc8UBpfLSGweyuvSfW8h0Y2ZmAt sy5910G698 0YIqWk15RRz5re8hAFL3S5SYgohaNTnMKy4FndsH23xhUQMvZZqS 1is mn5agzqNZhA1f1tBP50FnJXTY8RsYWqndZq4k efgL69cIn7gHo7wrJaaTTi6GC8iKlpnOKhj6vblkBiu3BORbyHElbY8Vkzsd0yJdk2mqmhX0lWvlxOgNFPbBmUgSw4snUonsAPk GPgBrh3BE Ahv0rUz2ojmfpaM9CMfG78CfGoGm1mw5d szqJSZLwp4Odx0Wk7NQcIwjFQZrMPraE9dEA2nHmzNJ43iyyO3CjM4FxPT6Q2rRHSF sZ5BrUdcVz9Rz6Kf7NHz0Bd4lDbWenUN1KDi6GuhhfGXMQT3ip0uTz0unr3b runHp 7PZop1DXEXnmEiF6Gr4u8rBWG2Uwf3QwpSc16OHR3EsR vSlwXLMOH8U7xObA5zx366n 3W JAQQCIVUUphx9EQJGdmvSn6vlLk4jZ7aD7FLoQWVk LpvfQzWuEffzDbZSFfV80F=w656 h630 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>確保留在 GoDaddy 的 Email 是可以收到信的，因為等等會寄授權碼跟處理狀況去信箱</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/4W1T9ja-C6S-qvDe63oyFWgpEc087SAtVz8QR7eywq-4k7hzKJXXzPcRqivTHR_WchJfL7WJdt7tF86s9AurM7iX_1s24dAtKB1jSSr02RhcSlPgX9tCw1wrxiwL9QSnYFXKGCSMZgIgIhL67-kGwJCBVedazxTLjU2_NfkYPvLQBIhS25KDAWMl-rVsxuA-b-Rd7snVYS64_0iNVMLqxNTLFldOtfWLtoaXZJ871woYV6bnEkWcfmW0fxntWoCn4NrzXQsDIIkkVKMIkWycBXBuuqwuAUOUJEeMyXOsw-nnvON5yvEVOMO6RHKyQWL-149tObTjfR3s3MzsIcUNidGmY9Kxk4va9euem4Woi8cODQ5SHusbZmV5TxIacGh-Q20osjGADcrRoZVqHMZMwgEYNTM6hGA9xhCuf_Qbj0Q7zzsMVduVKSUVDef9E1Y54YyEoGqt4llcvCm5SDDjzLl4eHvXlo7qe3OXVR9tbwqsC75_I6or3pgEeaYrRQY_BliqD9odlhO29NCOA0eqlchEcTxEDX8cXml5cXa1GWRlmm4totoo76ykso_3UZ5aAxStdy40799-5AidJivYTp400Z2FgEnw0Tf-hJf24RRMWMjKXiJuWwSslvFMflcVXWAYq9DMkkKLEsGJwJAk10szsW8t5EC4wxrlh4qygiUpd2L6BE5ALPs69U6DiBePoWUX3H7kELZc5Yjm3l5Zx3VFcgMGl2yPESO3wYhiuYdBLqPn=w963-h750-no" alt="4W1T9ja C6S qvDe63oyFWgpEc087SAtVz8QR7eywq 4k7hzKJXXzPcRqivTHR WchJfL7WJdt7tF86s9AurM7iX 1s24dAtKB1jSSr02RhcSlPgX9tCw1wrxiwL9QSnYFXKGCSMZgIgIhL67 kGwJCBVedazxTLjU2 NfkYPvLQBIhS25KDAWMl rVsxuA b Rd7snVYS64 0iNVMLqxNTLFldOtfWLtoaXZJ871woYV6bnEkWcfmW0fxntWoCn4NrzXQsDIIkkVKMIkWycBXBuuqwuAUOUJEeMyXOsw nnvON5yvEVOMO6RHKyQWL 149tObTjfR3s3MzsIcUNidGmY9Kxk4va9euem4Woi8cODQ5SHusbZmV5TxIacGh Q20osjGADcrRoZVqHMZMwgEYNTM6hGA9xhCuf Qbj0Q7zzsMVduVKSUVDef9E1Y54YyEoGqt4llcvCm5SDDjzLl4eHvXlo7qe3OXVR9tbwqsC75 I6or3pgEeaYrRQY BliqD9odlhO29NCOA0eqlchEcTxEDX8cXml5cXa1GWRlmm4totoo76ykso 3UZ5aAxStdy40799 5AidJivYTp400Z2FgEnw0Tf hJf24RRMWMjKXiJuWwSslvFMflcVXWAYq9DMkkKLEsGJwJAk10szsW8t5EC4wxrlh4qygiUpd2L6BE5ALPs69U6DiBePoWUX3H7kELZc5Yjm3l5Zx3VFcgMGl2yPESO3wYhiuYdBLqPn=w963 h750 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>可以到信箱去收授權碼，也可以點這邊直接看授權碼</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/HOS_JxMsrWDmiE9IJg3N0LIm5HXpo7SZkWEB9uZUHaHGPisISmh1pUfkiw-lzdcMEpSqWa1fDg0ze2n-hCCyaW3ivOs3zFARydJXEOl2Tjx-E9pB6CvbRNHacXjAAQ0RSDTavyykjBwB8xsl1PaCD0ng4_VDZR3jT7BZTNsyyV3pLiosdc_e-miCHfbWIYSuR0XfQY9x3m8y1oxo_E5gE5dp70sBExZvagfpLfgC3gNkgA92uWIdRxmF44MCWoufk5FeZbgKlT2KgZL34WXn_RdcPEjyxwf2x3TvSdZ-EAINYpNd4C64uEFtIEz2PydPUHGvZrtCPjXxALC9TeXmGgRCoW3xxbFu40uPiQYbgv88ty4OM2GuqAEe5EJDoVGYf1yoM92Oxr5nkdsQqOVuGqw3J19I_GbREb-2rlUzu3PTteTza9mbVIO1TQ8nM7VR3g_oW51I6y0DFYGRKusrtaYLF1lLOSYneVtuU_ajQnjL87Px_ynoQuy1o83misHdGWugRgQ4KGS8FLNHN_NZOyu4ui0fw4sFtkvV_2cuQiKBVGPZ_cv4zm0QWihKA1azkGHheeW18iJUSD_PulijUj1zSy8hsQCt6BK9U3agbFMI3e6CTZzZ1uC8nJMTCvAuCkP-iT0RaQ7a5GHzn4oyE6G1ULFz6OYsUPgckFf6AYjOPEwu96s_Fc_SghRzBc9OXyqrfhTSOe_7iNVuxxaTzuA2KYHg7PhMs1PPaTwdkuSPFBzk=w958-h581-no" alt="HOS JxMsrWDmiE9IJg3N0LIm5HXpo7SZkWEB9uZUHaHGPisISmh1pUfkiw lzdcMEpSqWa1fDg0ze2n hCCyaW3ivOs3zFARydJXEOl2Tjx E9pB6CvbRNHacXjAAQ0RSDTavyykjBwB8xsl1PaCD0ng4 VDZR3jT7BZTNsyyV3pLiosdc e miCHfbWIYSuR0XfQY9x3m8y1oxo E5gE5dp70sBExZvagfpLfgC3gNkgA92uWIdRxmF44MCWoufk5FeZbgKlT2KgZL34WXn RdcPEjyxwf2x3TvSdZ EAINYpNd4C64uEFtIEz2PydPUHGvZrtCPjXxALC9TeXmGgRCoW3xxbFu40uPiQYbgv88ty4OM2GuqAEe5EJDoVGYf1yoM92Oxr5nkdsQqOVuGqw3J19I GbREb 2rlUzu3PTteTza9mbVIO1TQ8nM7VR3g oW51I6y0DFYGRKusrtaYLF1lLOSYneVtuU ajQnjL87Px ynoQuy1o83misHdGWugRgQ4KGS8FLNHN NZOyu4ui0fw4sFtkvV 2cuQiKBVGPZ cv4zm0QWihKA1azkGHheeW18iJUSD PulijUj1zSy8hsQCt6BK9U3agbFMI3e6CTZzZ1uC8nJMTCvAuCkP iT0RaQ7a5GHzn4oyE6G1ULFz6OYsUPgckFf6AYjOPEwu96s Fc SghRzBc9OXyqrfhTSOe 7iNVuxxaTzuA2KYHg7PhMs1PPaTwdkuSPFBzk=w958 h581 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>然後就會收到這封信，確認可開始進行移轉</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/qorY7De5LEKkwwGrQblvcohzf6f2UjNIJMz126pK2YyCxuDVSjodJYxMQNFjIxDI8Q-rq5KlDiOGCCaLWsU-KF1XOdEkGauvxMrWMYznW1xbWtkYthac2-edwV2ZjUE4q9gAJBqUHJaHej9-Lx5ZdfuBeOC5wfqK1bSTYgsVWH_RF8AR2nwPv7_j2iqa-NF2bbUKExhnqPYWpGzOTdzM7jPiEyJ2RIHBfQPjDsFToFDxwTynGfKO2l8LnAl5rHxyS2ESbCtrWdmsyVUN4hXH_iNpe6GzKekc6J1bntyiWQbvc2E-6wTndpOM8ECor07NLv3ppoM-oB09BNKmKtPcZTEMe3ASS1hD6A1IezNLgvc5idwoqv0teWvxq73gZmXgFS3cpJtgGca1r2gyw1CvU6RWAS9qMItSLnw9QoOaA01OuM2iDf9KGOkElZnGS91SI0m5gjMwXbxENj8x-2SnPxEmd2zbIEaXLl7gZ4udx2E__s9QfOaD-tddJqMphThoB3VV-rRlO5A1bkuNdK9SOy7O0Ttg57HGC_DSaQCxmlcE2R6YXIC_KP-R0Q_VzHpXYrFcHVnKH16rT2O-7_JuQoeMAJ_I3TymoZOHOeyUuVPAlZ4I8Al0nNpbbSNeQ8iKp81lZIpY_MV_2k-HhUVGy9wC7HLvHxp9h8Bh4TlCwfI3zGg7BzIUn4nk9iW81pbhj83pq1b6xV9kmF-CyYg3DJCPicslmfXx-GMq35iUkpqatPi3=w624-h729-no" alt="qorY7De5LEKkwwGrQblvcohzf6f2UjNIJMz126pK2YyCxuDVSjodJYxMQNFjIxDI8Q rq5KlDiOGCCaLWsU KF1XOdEkGauvxMrWMYznW1xbWtkYthac2 edwV2ZjUE4q9gAJBqUHJaHej9 Lx5ZdfuBeOC5wfqK1bSTYgsVWH RF8AR2nwPv7 j2iqa NF2bbUKExhnqPYWpGzOTdzM7jPiEyJ2RIHBfQPjDsFToFDxwTynGfKO2l8LnAl5rHxyS2ESbCtrWdmsyVUN4hXH iNpe6GzKekc6J1bntyiWQbvc2E 6wTndpOM8ECor07NLv3ppoM oB09BNKmKtPcZTEMe3ASS1hD6A1IezNLgvc5idwoqv0teWvxq73gZmXgFS3cpJtgGca1r2gyw1CvU6RWAS9qMItSLnw9QoOaA01OuM2iDf9KGOkElZnGS91SI0m5gjMwXbxENj8x 2SnPxEmd2zbIEaXLl7gZ4udx2E s9QfOaD tddJqMphThoB3VV rRlO5A1bkuNdK9SOy7O0Ttg57HGC DSaQCxmlcE2R6YXIC KP R0Q VzHpXYrFcHVnKH16rT2O 7 JuQoeMAJ I3TymoZOHOeyUuVPAlZ4I8Al0nNpbbSNeQ8iKp81lZIpY MV 2k HhUVGy9wC7HLvHxp9h8Bh4TlCwfI3zGg7BzIUn4nk9iW81pbhj83pq1b6xV9kmF CyYg3DJCPicslmfXx GMq35iUkpqatPi3=w624 h729 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<h2 id="step2" class="para wp-block-heading">Google Domains 設定轉入</h2>



<p>連到 <a rel="noreferrer noopener nofollow external" aria-label="Google Domains (在新分頁中開啟)" href="https://domains.google.com/" target="_blank" data-wpel-link="external" class="wpel-icon-right">Google Domains<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 左方的選單切換到「移轉」頁籤，然後輸入要轉入的域名，按下 Enter 後</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/LMopcrU1-FXWcRn7CRIw3DoabqCjloYNxOPbP5OJ-8jTaKpTNKeH2v5xHNXP1UXS-PLIjJoxL3NVzC2u4LHkLRJOqWcS2cbJUNz-Ob9j1p-NB0z3KOJ8gi3rXccyAlqYgdIQvB5DVJ2UFsKGhK9c5xPoq1mBHlbp-ycqpeIO-ovF1xKoKn1hgm79M_HaFG1KTWY-oqx5_p4tntmiO3XqLAT2AxZj8cdHXHoVcEPGsMGHIsLn2gNE_upSc2qpDks8tm8Gw8FoUqLq0OZPqfy_jQt3-3M82NnZV53zEh5mg8BNtySpc3eeZvzqG0mNOpsYnpaUt9UXggzqReWFZZi2Vh4M6bIESGLHHfW1fuvY8C1b6WIjouOq1Kr2vD7kNTVpoZ5BEUYJb8llyMpPmfucDA1T76T_mrcUfuRxHRQRmYwcU6C28jewwNPmfp1WGo4rIyz_tkn2q42cgfKEEkwulkx4QJfIT4KvEEVlQhz_KNQmag7itf379p-OrziUED3gVPFj2-AbFrRuT3ns8WeR25Tt0fRgkwY7gx_NNPlW--SYHSCU-gE7Tc49UFdPcSYlIxY2mElM-F6-ijE66U5da6t_0mugZY8tGdRRnLbQpC3O-1wQNGmyXhmiPDN4og-LF9pgAm3lC6oMt53lyOlonpHc6zcu7Flxr9mbz5p7e0U9yfaH-mgCOsxLxWfNzseL8gQ-doA6PQX5JfsdsPYLMJXKpEiK3yu0R_G1T13Ss0qtBiJo=w988-h689-no" alt="LMopcrU1 FXWcRn7CRIw3DoabqCjloYNxOPbP5OJ 8jTaKpTNKeH2v5xHNXP1UXS PLIjJoxL3NVzC2u4LHkLRJOqWcS2cbJUNz Ob9j1p NB0z3KOJ8gi3rXccyAlqYgdIQvB5DVJ2UFsKGhK9c5xPoq1mBHlbp ycqpeIO ovF1xKoKn1hgm79M HaFG1KTWY oqx5 p4tntmiO3XqLAT2AxZj8cdHXHoVcEPGsMGHIsLn2gNE upSc2qpDks8tm8Gw8FoUqLq0OZPqfy jQt3 3M82NnZV53zEh5mg8BNtySpc3eeZvzqG0mNOpsYnpaUt9UXggzqReWFZZi2Vh4M6bIESGLHHfW1fuvY8C1b6WIjouOq1Kr2vD7kNTVpoZ5BEUYJb8llyMpPmfucDA1T76T mrcUfuRxHRQRmYwcU6C28jewwNPmfp1WGo4rIyz tkn2q42cgfKEEkwulkx4QJfIT4KvEEVlQhz KNQmag7itf379p OrziUED3gVPFj2 AbFrRuT3ns8WeR25Tt0fRgkwY7gx NNPlW SYHSCU gE7Tc49UFdPcSYlIxY2mElM F6 ijE66U5da6t 0mugZY8tGdRRnLbQpC3O 1wQNGmyXhmiPDN4og LF9pgAm3lC6oMt53lyOlonpHc6zcu7Flxr9mbz5p7e0U9yfaH mgCOsxLxWfNzseL8gQ doA6PQX5JfsdsPYLMJXKpEiK3yu0R G1T13Ss0qtBiJo=w988 h689 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>填入從 GoDaddy 拿到的授權碼</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/6HR3FlSRwgbQwSjAGl-ARk7IMUJFgriSpLVFFXNJ0Ni3a-Eclz_eeU6A1mdglc-uaN5Fw1277PSqKG6ma3ctSrDKERy33zA3wvkfySgpouvjOu8rKhbWSlUwV5AvCNXy1q4lSKEMfFw7j8lhdkpnj-C7DRG9QQcEY6LpnDVWZDZtQJ5SIS0Afu9ToGiu4lMLg0jGNN0c0R0ynMWghdTMRaNgFsSgsXIjy25DvMbISgv0lbD0-0vHkjKj6scLei1YpBWkbgLbDep8x7Ci-R3idMywDHq33kZE4uaEoRZjqPTfDn3JgKleh-d2xXsKZruygXstXZ2tZ3xwk7SO-YE0vj57O1GSdX_h_3dMvTGudTUFbBe_DeCIzmkyXrWaYckr18RybR3sBf9o99uc0xA-OHt4v2Ksz3fs2T3SLHEhWKuXmkp42HphjXLQPj8ZP07rjNv3pdLDMtKxNmZoakye4CQ8gLJudS2wIAmiqW8IAYniALN__pt5MXO1tFhN8efY6IzljlX-K_efHCs7MBJwipq2pzC6l_c5E5YWIllYIvIIDrNqkCkFmZ0b8Bf3DxVnzzcLPHEGl7w4vc4xCn7b3JAcXaBg8aPH2ffMll-0TvDERijHECez2AXcftVSOSZdh7TywtAUQ4L66GzbwY40_ptwSrM5HFC53CwXcAFCaOXk5ku4FtfLxw6w86fh9Tdgpa2k-ZeHxA1UR8ROKdHbbrRS8iRlEAjQbZiZlspt_F70LqQd=w930-h603-no" alt="6HR3FlSRwgbQwSjAGl ARk7IMUJFgriSpLVFFXNJ0Ni3a Eclz eeU6A1mdglc uaN5Fw1277PSqKG6ma3ctSrDKERy33zA3wvkfySgpouvjOu8rKhbWSlUwV5AvCNXy1q4lSKEMfFw7j8lhdkpnj C7DRG9QQcEY6LpnDVWZDZtQJ5SIS0Afu9ToGiu4lMLg0jGNN0c0R0ynMWghdTMRaNgFsSgsXIjy25DvMbISgv0lbD0 0vHkjKj6scLei1YpBWkbgLbDep8x7Ci R3idMywDHq33kZE4uaEoRZjqPTfDn3JgKleh d2xXsKZruygXstXZ2tZ3xwk7SO YE0vj57O1GSdX h 3dMvTGudTUFbBe DeCIzmkyXrWaYckr18RybR3sBf9o99uc0xA OHt4v2Ksz3fs2T3SLHEhWKuXmkp42HphjXLQPj8ZP07rjNv3pdLDMtKxNmZoakye4CQ8gLJudS2wIAmiqW8IAYniALN pt5MXO1tFhN8efY6IzljlX K efHCs7MBJwipq2pzC6l c5E5YWIllYIvIIDrNqkCkFmZ0b8Bf3DxVnzzcLPHEGl7w4vc4xCn7b3JAcXaBg8aPH2ffMll 0TvDERijHECez2AXcftVSOSZdh7TywtAUQ4L66GzbwY40 ptwSrM5HFC53CwXcAFCaOXk5ku4FtfLxw6w86fh9Tdgpa2k ZeHxA1UR8ROKdHbbrRS8iRlEAjQbZiZlspt F70LqQd=w930 h603 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>匯入網路設定，因為小蛙本來就沒有用 GoDaddy 管理設定，而是移交給 <a href="https://www.cloudflare.com/zh-tw/" target="_blank" rel="noreferrer noopener nofollow external" aria-label="Cloudflare (在新分頁中開啟)" data-wpel-link="external" class="wpel-icon-right">Cloudflare<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 來做管理（可以看<a href="https://noter.tw/195/%e4%bd%bf%e7%94%a8-cloudflare-%e4%bb%a3%e7%ae%a1%e4%bd%a0%e7%9a%84%e5%9f%9f%e5%90%8d/" data-wpel-link="internal">使用 Cloudflare 代管你的域名</a>），因此這邊勾選下面的「保留現有的網域名稱伺服器」，如果原本就用 GoDaddy 來管理的話，要選上面的喔！</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/YGPY-S3ofWdvz8FPSzG84TjLQf2_GhWiuiyyM5EGynvz6DnLAR3sFLOa-U2LYSt3CBXcGAr0xAbHfZnjBPit5ZQBswTgm8FPH8Qtd9Z4rLFeB9c25yMPCmSR9PLFRdana9YtKOhkSmwZJ2bxjOjVLFeB23h9yxB5_J8Sawd6oHYH7UEenVUHDYBxx7yejNIhj9V6SJAuOTzRhq3YGoVP2bzpQMTItv10CpIPR91XG_YXSpXiiLMTp9Em20WeRLmtAofFeKLQhA1esaVEeRIZqJZb65-dYvKGXFadg73S2oP7Gf3naZIQYa4MCDf_pglYp7etSc853J3ha1uB_1xgkSXxQejjMJnoBi28n0udS5y5zCQ3aTA9pYEKK1WYmcCNJvSAomFOW87kv-V72wZM2EjLRlFHQNCsTTINybcoEZQK-ko_xOzWhWFVT9x4nezK_xBUoZfCypfGm_wGaeTnfPokvLtPFd2NPF_ERDEkZ1ylSLaAap4foH9PfxV8P63WpKwPq1eZrRGb0_Eu74UGxrnelVnPn-intXu1uIr-fChzg5XuSM3NeKeUvQqEAhVASZf4P_e4Pck3l_o7etkGzk-GY2ttUI51NhBXi1hm8gpZrJRf_WIoL-UDF3XAYEvvMXtjHUzNFlLrHy-f6EDwI42lss5qQ0gKccmfEmAEdK5LJMXs2XZw6ZCr1Z_uDNx0teg_57DykTogttlGhmHIraFIgUHXJrXYo8jb4sWAJJd5Sd5M=w935-h528-no" alt="YGPY S3ofWdvz8FPSzG84TjLQf2 GhWiuiyyM5EGynvz6DnLAR3sFLOa U2LYSt3CBXcGAr0xAbHfZnjBPit5ZQBswTgm8FPH8Qtd9Z4rLFeB9c25yMPCmSR9PLFRdana9YtKOhkSmwZJ2bxjOjVLFeB23h9yxB5 J8Sawd6oHYH7UEenVUHDYBxx7yejNIhj9V6SJAuOTzRhq3YGoVP2bzpQMTItv10CpIPR91XG YXSpXiiLMTp9Em20WeRLmtAofFeKLQhA1esaVEeRIZqJZb65 dYvKGXFadg73S2oP7Gf3naZIQYa4MCDf pglYp7etSc853J3ha1uB 1xgkSXxQejjMJnoBi28n0udS5y5zCQ3aTA9pYEKK1WYmcCNJvSAomFOW87kv V72wZM2EjLRlFHQNCsTTINybcoEZQK ko xOzWhWFVT9x4nezK xBUoZfCypfGm wGaeTnfPokvLtPFd2NPF ERDEkZ1ylSLaAap4foH9PfxV8P63WpKwPq1eZrRGb0 Eu74UGxrnelVnPn intXu1uIr fChzg5XuSM3NeKeUvQqEAhVASZf4P e4Pck3l o7etkGzk GY2ttUI51NhBXi1hm8gpZrJRf WIoL UDF3XAYEvvMXtjHUzNFlLrHy f6EDwI42lss5qQ0gKccmfEmAEdK5LJMXs2XZw6ZCr1Z uDNx0teg 57DykTogttlGhmHIraFIgUHXJrXYo8jb4sWAJJd5Sd5M=w935 h528 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>勾選隱私保護服務，這個服務在 GoDaddy 可是要收錢的，Google Domains 佛心來的，免費送啊！而且一年只要 12 鎂，大概是台幣三百多，小蛙看了之前在 GoDaddy 的帳單，一年大約是五百多塊台幣，Google Domains 不僅送隱私保護，還更便宜，有什麼原因不轉呢？</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/hnBSg5mGhledsDx-x9-jTcc1U4Myp29L8Dup-WzaA2Lc7O6g9MeZ1Bmd5Ld_5vmxyhjvP2P_KmLYE_2MudEpXz4jocWyteMtNOLCv_u31W3Kcfe8MAT-ByyD95U_jap-q8yawRYoVu0QD5lEQxYhVpTkr51aTgKn29CImAeSFXeRx0l8ZeyRvDtb5RSAodjwfWMJiMWcRa9bQT_QStbu8C3AttXBx03yq6y6S0kbdvWak2Kwor11x3Y-YBdn1zUVVsY7hcxYKSQN5pTvtcaNBfVK0O0qa7dzM5x-C0SZT4ob2d6SqR__7fl4AkjrxvRnjiUJ7OATjOEV5XKBVsnSVPS5PIbQ-AbI6XbBoku2eJMTlZrl1fK5DVcuo0cFhg2hzYw3ifGzO6qIRh0_I6JOKNVCEgNryW0e8stzdiNtqX_x4bXsiFh_jJl6_JIaa-_2XhNKrt_y4ngHVh-sgDl0vc2_wqjHPcdHMFn9MrZIzNh4wddo8qZSxDxQvCimTny2jieVrVQe7-F22t1He3n806Xt95ngRYB-t8y_VLqAnopIveevKaJ5nmO7TwaFqgBYDYZINy5thqNKL77pSG1xmN7QSdJmFO72qHmmphNFrqA1y2g3UyjM4-1vDwiFk8v44zP9xMZsi66707PLDQbR8cwkVS93YuvBA0eRaKhU_iWnUny_DSLBm3OnETY3gXOvXd-Ehba3J8Ej8BRg8GWdkIwc40QQBgQ5146h-bYPSSIKzd2Z=w912-h754-no" alt="hnBSg5mGhledsDx x9 jTcc1U4Myp29L8Dup WzaA2Lc7O6g9MeZ1Bmd5Ld 5vmxyhjvP2P KmLYE 2MudEpXz4jocWyteMtNOLCv u31W3Kcfe8MAT ByyD95U jap q8yawRYoVu0QD5lEQxYhVpTkr51aTgKn29CImAeSFXeRx0l8ZeyRvDtb5RSAodjwfWMJiMWcRa9bQT QStbu8C3AttXBx03yq6y6S0kbdvWak2Kwor11x3Y YBdn1zUVVsY7hcxYKSQN5pTvtcaNBfVK0O0qa7dzM5x C0SZT4ob2d6SqR 7fl4AkjrxvRnjiUJ7OATjOEV5XKBVsnSVPS5PIbQ AbI6XbBoku2eJMTlZrl1fK5DVcuo0cFhg2hzYw3ifGzO6qIRh0 I6JOKNVCEgNryW0e8stzdiNtqX x4bXsiFh jJl6 JIaa 2XhNKrt y4ngHVh sgDl0vc2 wqjHPcdHMFn9MrZIzNh4wddo8qZSxDxQvCimTny2jieVrVQe7 F22t1He3n806Xt95ngRYB t8y VLqAnopIveevKaJ5nmO7TwaFqgBYDYZINy5thqNKL77pSG1xmN7QSdJmFO72qHmmphNFrqA1y2g3UyjM4 1vDwiFk8v44zP9xMZsi66707PLDQbR8cwkVS93YuvBA0eRaKhU iWnUny DSLBm3OnETY3gXOvXd Ehba3J8Ej8BRg8GWdkIwc40QQBgQ5146h bYPSSIKzd2Z=w912 h754 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>開始結帳，如果是第一次結帳的話，會需要填寫聯絡資訊，第二次之後就可以用選的，因為小蛙一開始當機，所以 &#8230; 之前截得畫面不見了，付款方式填入信用卡就可以了。</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/jCKRttPweuCj3xQtnD9czOMBxQGm5KjCOkEdhFJ_rCrIxP4ivgvpUU069lixHQUDaVJnnB0aULgkk5TbvVvcayzjwT3nu7LH7-6nSsFrF2R-DZBSsqVNu-sW5uz45RYteghcnb4d0957ku2YyXTQNALAXsiLsBXi-0ge9e3Eot4kJLO-hauKGSIZM-EIVxAbTRxmMJhmafbimPhV8O-5-DxIcZesNTq_Zkuv6Z0eXp25rru-CgQ0nxMVTiTYc9gdbu53Tr1ZmhN-qGsVlwxANspSUJxceVkkuKEy_w8XU1NF2HvhVuGVWQxpZn5FMLemF6eqSeA2xlWTxOABFNYwtSzMbGj3gkCql_HUj2RgmRDadogF0lA-W07rEGztefLELLfYvXLMWkqfR2I7zopEwlUXuUuJuT2htscP90_UgKhXT0FFhRWgkgARsXvqUgluBpDmhop8ldZSpnsuxdwYrPTWhd-kyoOC_URZQZ_-5XiXFOYFcma6ZwfVK_dwFfgoCxHUhbW1QXRHE3PQIYJ9bojdYjFdAka_YJpql1e7CjHJfsZL23F8XfqSGuHHDNtcq0VzgCYly1zVy-3L2HAO2xO5mNG7kvV4BZ3fZrwhCTKNjzn75hBnLZl0GO_LtlQUPGLMLhtzFj6Q_1ceOp31YrhA96tuzNtyApFrwKXqqSslSbaj6vinnkmurFnsK4oQRU02bQX0EsawQPK8-jP-q6ZkLDaHxhMFgkslqMzV3OtRiOTt=w618-h711-no" alt="jCKRttPweuCj3xQtnD9czOMBxQGm5KjCOkEdhFJ rCrIxP4ivgvpUU069lixHQUDaVJnnB0aULgkk5TbvVvcayzjwT3nu7LH7 6nSsFrF2R DZBSsqVNu sW5uz45RYteghcnb4d0957ku2YyXTQNALAXsiLsBXi 0ge9e3Eot4kJLO hauKGSIZM EIVxAbTRxmMJhmafbimPhV8O 5 DxIcZesNTq Zkuv6Z0eXp25rru CgQ0nxMVTiTYc9gdbu53Tr1ZmhN qGsVlwxANspSUJxceVkkuKEy w8XU1NF2HvhVuGVWQxpZn5FMLemF6eqSeA2xlWTxOABFNYwtSzMbGj3gkCql HUj2RgmRDadogF0lA W07rEGztefLELLfYvXLMWkqfR2I7zopEwlUXuUuJuT2htscP90 UgKhXT0FFhRWgkgARsXvqUgluBpDmhop8ldZSpnsuxdwYrPTWhd kyoOC URZQZ 5XiXFOYFcma6ZwfVK dwFfgoCxHUhbW1QXRHE3PQIYJ9bojdYjFdAka YJpql1e7CjHJfsZL23F8XfqSGuHHDNtcq0VzgCYly1zVy 3L2HAO2xO5mNG7kvV4BZ3fZrwhCTKNjzn75hBnLZl0GO LtlQUPGLMLhtzFj6Q 1ceOp31YrhA96tuzNtyApFrwKXqqSslSbaj6vinnkmurFnsK4oQRU02bQX0EsawQPK8 jP q6ZkLDaHxhMFgkslqMzV3OtRiOTt=w618 h711 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>結完帳之後會看到這個畫面</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/5fdAKIWd0gIgUNnlsh1Df0av2bVUnHHuCWanizBw8K9KYLOxrfdePZ1Sg_PYCv1fYc2Y25TXdAsERAjC-ETF11FzZq30o5mVHHksGYPW1a8yHjOUBczYHOX7njYRwYTppSNOFJcauE_0OchyCQTnWy-ckyZTBIxHhRGioWokC56EHXveGyZ95clU5jLAJrfWo9XCFxr5L0qCAunFpw8uu6mAE92TL1eNu1l0mMxPeYjJknLtTHoZ9BSbuqlXjDYTVGXIMfYlcfHaTfvqpOrxoG0kzi565b6J-8kBfaXfSCT3oLEe7CObbYw4TtjtdKXt_a1W-fSKGzMIyF3VMP_pHKvUhYGYy14InglbM65VZA6kACzqNAgnTT6A1bL1duPrjw2HIJf6L5Bej7FEcQAFQjkEl7YGDdypE0_eNWp1ttneNG6KTLNeohjiaFxx8dS4HjXEnIrVOqrSGtdx3huuyR__cOFnG7Mroh7_aXj0T0OCgiI08GXm5OixWdLovXwfe60-VaegAsASfnVByLhHzdcnIeA7YB6OZePhgD-cXSkkLs0TQMvIPzWqiXn8DFHubvXEfM8Fphu-E2rK73iWwNZuNK3wWiQakdelTsnzVBDUrHrsG25f4F9H8VCRlErbOKWBqdHttbqphL5dwJUI4hjQ-g_5eP7lS-sq732fUmwbMfZpKZ7emqdzAiWV4LvI6ITixmjLcChrstcsgPETseYarhFDu9Ox-wSq__7Se4HMd40F=w826-h229-no" alt="5fdAKIWd0gIgUNnlsh1Df0av2bVUnHHuCWanizBw8K9KYLOxrfdePZ1Sg PYCv1fYc2Y25TXdAsERAjC ETF11FzZq30o5mVHHksGYPW1a8yHjOUBczYHOX7njYRwYTppSNOFJcauE 0OchyCQTnWy ckyZTBIxHhRGioWokC56EHXveGyZ95clU5jLAJrfWo9XCFxr5L0qCAunFpw8uu6mAE92TL1eNu1l0mMxPeYjJknLtTHoZ9BSbuqlXjDYTVGXIMfYlcfHaTfvqpOrxoG0kzi565b6J 8kBfaXfSCT3oLEe7CObbYw4TtjtdKXt a1W fSKGzMIyF3VMP pHKvUhYGYy14InglbM65VZA6kACzqNAgnTT6A1bL1duPrjw2HIJf6L5Bej7FEcQAFQjkEl7YGDdypE0 eNWp1ttneNG6KTLNeohjiaFxx8dS4HjXEnIrVOqrSGtdx3huuyR cOFnG7Mroh7 aXj0T0OCgiI08GXm5OixWdLovXwfe60 VaegAsASfnVByLhHzdcnIeA7YB6OZePhgD cXSkkLs0TQMvIPzWqiXn8DFHubvXEfM8Fphu E2rK73iWwNZuNK3wWiQakdelTsnzVBDUrHrsG25f4F9H8VCRlErbOKWBqdHttbqphL5dwJUI4hjQ g 5eP7lS sq732fUmwbMfZpKZ7emqdzAiWV4LvI6ITixmjLcChrstcsgPETseYarhFDu9Ox wSq 7Se4HMd40F=w826 h229 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<h2 id="step3" class="para wp-block-heading">GoDaddy 接受移轉</h2>



<p>再來回到 GoDaddy，前面兩個步驟做完之後，GoDaddy 這邊要確認接受移轉，才會把主控權轉移給 Google Domains，找到網域 -&gt; 待處理的帳戶變更（GoDaddy 的選單設計得很糟，小蛙常常找不到要找的選單，有時候點一點又感覺跳到另一個系統 &gt;&lt;）</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/rMg9gJD7bO_W7rocoLSFXm98xUDXvWhNAI2G8Z0sCwYNmPeg-XLSgiOwG16971-vKMIqPDWEDl0WaVPwnPlkoX5U-cxJSpXOnXCCyJnXz7tQX3snH4OkdItIxB67ZH0IPlGfCFtatITin8UdEXdKCYT4Mgk_IrFRGnHMHbAdMSat7HW3LuKJiPHgoXXywA9kDhouCnTsJDww7dnw-2WKaw1p-7ZIjDeXLnfeXWypG6Hi3CT1O8JSjbU6c2itZWIJktkMe0glATydNW1whqz0qzIbWXhKhqQR3d72pVTXqEHrJZTs_FkbKQkaByMEJtlwECommDAL83_Z9RcUlsikWwnmadcpuw2nI1GDmTaci86P-KW0FK6qwFMa1xIH_LBAb-oz5xRKfpe16pUpGTPlXY3HIVx1fBSdK7WZO42eYSNDpoZflfvz40NZlOjBWMZw4Y-Pnj8JEwtKJxOlr2Bx_fGC7mZ9uun1J5n0lbFh0UmdTc9855re68CW3rWP3Ux-omCAaiDifx8SPBpdRBVzgxqmvotsgR_PHcdgxPJ8Ll8bYcUg7Z3dMEyNXSn0otWxShFCZIITca6ObFxU76DlJLdW2hVeiKcFEBsUALIjBalQnqrZvTO9ncA-ljqwtu1IsXJic4qSbv0arTn6Cd025_jkmfcKgSehqi7R9QCIB6sPvGqYXKNs-bJdBGLnbdI7qpX6S2zh_FZpGbt-Hpu8wrcal7EQDleDu4EQ09wpYeQ-5R-B=w300-h375-no" alt="rMg9gJD7bO W7rocoLSFXm98xUDXvWhNAI2G8Z0sCwYNmPeg XLSgiOwG16971 vKMIqPDWEDl0WaVPwnPlkoX5U cxJSpXOnXCCyJnXz7tQX3snH4OkdItIxB67ZH0IPlGfCFtatITin8UdEXdKCYT4Mgk IrFRGnHMHbAdMSat7HW3LuKJiPHgoXXywA9kDhouCnTsJDww7dnw 2WKaw1p 7ZIjDeXLnfeXWypG6Hi3CT1O8JSjbU6c2itZWIJktkMe0glATydNW1whqz0qzIbWXhKhqQR3d72pVTXqEHrJZTs FkbKQkaByMEJtlwECommDAL83 Z9RcUlsikWwnmadcpuw2nI1GDmTaci86P KW0FK6qwFMa1xIH LBAb oz5xRKfpe16pUpGTPlXY3HIVx1fBSdK7WZO42eYSNDpoZflfvz40NZlOjBWMZw4Y Pnj8JEwtKJxOlr2Bx fGC7mZ9uun1J5n0lbFh0UmdTc9855re68CW3rWP3Ux omCAaiDifx8SPBpdRBVzgxqmvotsgR PHcdgxPJ8Ll8bYcUg7Z3dMEyNXSn0otWxShFCZIITca6ObFxU76DlJLdW2hVeiKcFEBsUALIjBalQnqrZvTO9ncA ljqwtu1IsXJic4qSbv0arTn6Cd025 jkmfcKgSehqi7R9QCIB6sPvGqYXKNs bJdBGLnbdI7qpX6S2zh FZpGbt Hpu8wrcal7EQDleDu4EQ09wpYeQ 5R B=w300 h375 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>接著切換到「轉出」，勾選要轉出的網域名稱，按下「接受轉移」</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/bM896l-injvKS75n0S7mleyIY-xQb51OS0jA7mWmFvl-FgG7O-pIM2IoB95r9MmEeWBkofCuUlaPCCpWh1aBb-s_oakXx7t8cA2DIG8QTyCVOa0FIoCmyE91Cq_xo9dhIpc2fcgfHT-1byUG5K_qw0JjnXkpVdJDs_j0Wq6sogIVH9p8Sno84SD3ol-ivRGnyQIFo3lnrCUzEAvwK48_qD53JSeDYajATPphtiPnaQFYESj368QkmTYa2ucixEPVa8ilzJ8Wy69SdYngGLXBpHun1PPxt4bi_zHCE83wY9n9Ex8h0IxcianMIzLVvcIPEi9FiheN4_UVpK3vvUGYW4Y-dXVlU9ImO-hsg8eGMqoHbuRCCiVa1snWOQ2JbP7qETmXEP_BfP2vQhsGRPE31jXiY_pUSGw7Qm6NWyOTSBT6eGxOneqlxoZ9dcNr0WzRVyFIdhfuoIULntG1GTNOpqtGaAztg2Z9oiuJ-VKYWEg_AY1y2hOlnsBO-sIsE5OkOMhXhjfoxC-_pugfhFioMJor2L0-3b7UZYJ81rLuO-dTyX7p72pbAvqN24GRpNxMNsynVhieX9KRR-a6Ck7hJcOVITeqw3kxZeX19PGpgTITxeQgkqf9t49w-eXVgibGvAGRuhFUOpZflYMWR_QSJ6YXWf5JiLtS-mN45785WRt7HYWhth3KjUOFUWqsspMeQpSQaSQKc1D17oKx7OVN6MUT6MGz4cxhSYihrqOBPnKrR0Iu=w905-h395-no" alt="bM896l injvKS75n0S7mleyIY xQb51OS0jA7mWmFvl FgG7O pIM2IoB95r9MmEeWBkofCuUlaPCCpWh1aBb s oakXx7t8cA2DIG8QTyCVOa0FIoCmyE91Cq xo9dhIpc2fcgfHT 1byUG5K qw0JjnXkpVdJDs j0Wq6sogIVH9p8Sno84SD3ol ivRGnyQIFo3lnrCUzEAvwK48 qD53JSeDYajATPphtiPnaQFYESj368QkmTYa2ucixEPVa8ilzJ8Wy69SdYngGLXBpHun1PPxt4bi zHCE83wY9n9Ex8h0IxcianMIzLVvcIPEi9FiheN4 UVpK3vvUGYW4Y dXVlU9ImO hsg8eGMqoHbuRCCiVa1snWOQ2JbP7qETmXEP BfP2vQhsGRPE31jXiY pUSGw7Qm6NWyOTSBT6eGxOneqlxoZ9dcNr0WzRVyFIdhfuoIULntG1GTNOpqtGaAztg2Z9oiuJ VKYWEg AY1y2hOlnsBO sIsE5OkOMhXhjfoxC pugfhFioMJor2L0 3b7UZYJ81rLuO dTyX7p72pbAvqN24GRpNxMNsynVhieX9KRR a6Ck7hJcOVITeqw3kxZeX19PGpgTITxeQgkqf9t49w eXVgibGvAGRuhFUOpZflYMWR QSJ6YXWf5JiLtS mN45785WRt7HYWhth3KjUOFUWqsspMeQpSQaSQKc1D17oKx7OVN6MUT6MGz4cxhSYihrqOBPnKrR0Iu=w905 h395 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>收到通知說 15 分鐘後生效，但小蛙操作的時候沒有那麼久，只過一下下就寄 Email 來通知完成了</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/NH28zjZWUG5cLEC8KFgqbIdFmMJ8rkrTC685tszznr1oE-km1ayXwUgav1OjCW9rL0K-ua3G8edBImGNhhmZicOh0Fj8oT5-NV8KAYEeOKyk2Hpghwsi0M9kcjQXbDpbi67NtX5w2eDGe2-_eEOB30Q35PUdGjaCSQH5RXutEjvFbHd-kwcU2qw3ShucizGFKjewzG3ZQnmTMOOVz8Rn8JKRhm3sS62Q1ay_Uw3j5fAfwWbIQMhYbZx5nppXj7RU8KYzQBGO8XnCqQIO1GHw1SovV3QBu-UInctYaSWj1QH-BL3Whl4C2TV75Apr6FsNA47E5qsdrrw6ytyutz1qsi9TkO7b0q4hyM4c0XQpQW3rQff1Wtu_i7P8jSatZlTJbKP7EEQ7lqrhGqS0Gy4ePrBvwXBs299Q-z2kLlsbc5LAysA9pHJg1ibreEDIc-An6lJWKiIZ0QdN7_jdL7_J-dNniV0_O8Qy2KNwdhvt5_WvnHb3XrWEXCTe38Mi07GmYQlhpBw5VFSXW_Ce8gyWK4rXDvja-nx53y8nDMaGKksFYlsgjF72rOYXKQGjxh3O4BLfydmO3iJnwbZWibFq2rHrJd6Dm2KRja9PwSu3urVFb64YqEkvsAzidoSic0GDzSAhydhl-b71Q33WI_mN1IVrjmetrdFWy4-QgRZ41DDAVqvX9NtFkjUr1Z0W1YVwOiwTBjRUyaR5VzjeVQJ9QjmwakCaDhBQHsGG51XZvEiNPEQy=w289-h123-no" alt="NH28zjZWUG5cLEC8KFgqbIdFmMJ8rkrTC685tszznr1oE km1ayXwUgav1OjCW9rL0K ua3G8edBImGNhhmZicOh0Fj8oT5 NV8KAYEeOKyk2Hpghwsi0M9kcjQXbDpbi67NtX5w2eDGe2 eEOB30Q35PUdGjaCSQH5RXutEjvFbHd kwcU2qw3ShucizGFKjewzG3ZQnmTMOOVz8Rn8JKRhm3sS62Q1ay Uw3j5fAfwWbIQMhYbZx5nppXj7RU8KYzQBGO8XnCqQIO1GHw1SovV3QBu UInctYaSWj1QH BL3Whl4C2TV75Apr6FsNA47E5qsdrrw6ytyutz1qsi9TkO7b0q4hyM4c0XQpQW3rQff1Wtu i7P8jSatZlTJbKP7EEQ7lqrhGqS0Gy4ePrBvwXBs299Q z2kLlsbc5LAysA9pHJg1ibreEDIc An6lJWKiIZ0QdN7 jdL7 J dNniV0 O8Qy2KNwdhvt5 WvnHb3XrWEXCTe38Mi07GmYQlhpBw5VFSXW Ce8gyWK4rXDvja nx53y8nDMaGKksFYlsgjF72rOYXKQGjxh3O4BLfydmO3iJnwbZWibFq2rHrJd6Dm2KRja9PwSu3urVFb64YqEkvsAzidoSic0GDzSAhydhl b71Q33WI mN1IVrjmetrdFWy4 QgRZ41DDAVqvX9NtFkjUr1Z0W1YVwOiwTBjRUyaR5VzjeVQJ9QjmwakCaDhBQHsGG51XZvEiNPEQy=w289 h123 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>然後 &#8230; 就會收到 GoDaddy 寄來一堆 Email，第一封告知已經完成轉移動作了</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/c0v1QPkJQTHnlKMdiTqYhimmb4fB0579FZbVGG_2XCxvtJrxS0WDmbBxph24GU1X-ZR0Vt38FF4VJtWG8-vBY7UzeZzdHK-HvMOJiz0E8USkUGhX_9nKqK6GSkS6GQNOu5e3WEJ8xquyRQIaAcgudtcj2ALZZIOHfXdphwK6WWHkAjqfEqY6qiylZjoSmhT4YNBCnPblYjcdzOQsGFBJcjBM_SEYBLBghKz5_siHECDFJkPoTDFnDF1vVRSICpXqb1ksRjD1yW6TdnkveoVxQwFzSJY_34y2hli9NN9OttFA4w-ca3BjW3r5SKK3m5gbwkXx_zK196y0cU2a2QxK8gRYEMYDFtTcDUAv-EzgGMu-92bW9UyCF6-jtnC7ICPNHdRgGErJUV8j7IlxWiJxzJpIvn6dCxvjF56g14Opv-2yKHu5nDWnZRtSxOk4q-4WVgHzquDHTOXVeBYykSeEDf9_ZI_gNStjPLMT1CA1NA3p_prGpJgnLzowDIE7C-c7Ebr7wn_sj8x7GlUuXf6ljP70ucXg6df62ZC6jrl54YsqNdS1qK04fcH9_a53BsInnaauj1ULrAjqAY0hAi2wr964RmNT0L0n_yv97uYOuoztJtRliPT8yFGrJdJ9BqazQiet_9oYiw0FeaEm4I9cASBYAKHEGktbpYZ41wZXH9Qgqez6AiuxUFSv8JsXvhfJZu5DiYTXKg3DfO5EXTI-4qTzSffjhpMAueVtEEWE_4i5dnlO=w611-h536-no" alt="c0v1QPkJQTHnlKMdiTqYhimmb4fB0579FZbVGG 2XCxvtJrxS0WDmbBxph24GU1X ZR0Vt38FF4VJtWG8 vBY7UzeZzdHK HvMOJiz0E8USkUGhX 9nKqK6GSkS6GQNOu5e3WEJ8xquyRQIaAcgudtcj2ALZZIOHfXdphwK6WWHkAjqfEqY6qiylZjoSmhT4YNBCnPblYjcdzOQsGFBJcjBM SEYBLBghKz5 siHECDFJkPoTDFnDF1vVRSICpXqb1ksRjD1yW6TdnkveoVxQwFzSJY 34y2hli9NN9OttFA4w ca3BjW3r5SKK3m5gbwkXx zK196y0cU2a2QxK8gRYEMYDFtTcDUAv EzgGMu 92bW9UyCF6 jtnC7ICPNHdRgGErJUV8j7IlxWiJxzJpIvn6dCxvjF56g14Opv 2yKHu5nDWnZRtSxOk4q 4WVgHzquDHTOXVeBYykSeEDf9 ZI gNStjPLMT1CA1NA3p prGpJgnLzowDIE7C c7Ebr7wn sj8x7GlUuXf6ljP70ucXg6df62ZC6jrl54YsqNdS1qK04fcH9 a53BsInnaauj1ULrAjqAY0hAi2wr964RmNT0L0n yv97uYOuoztJtRliPT8yFGrJdJ9BqazQiet 9oYiw0FeaEm4I9cASBYAKHEGktbpYZ41wZXH9Qgqez6AiuxUFSv8JsXvhfJZu5DiYTXKg3DfO5EXTI 4qTzSffjhpMAueVtEEWE 4i5dnlO=w611 h536 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>第二封說討厭你離開，降價快回來</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/phFa9FbbNsmx4EE8Fkpu4SveJk5rKp-I1TFuOJrcSFXGBmTYrMbp6oE-hi9Nu68rB7uAkk7-KnZT3aho3bMuzuD4piVzfwmo7NcmIt1EOQEXM465A4RTxl-JElBkd7DtqiZhzYAj7DQ8VMViGBmv7ZaxIxAVv8RTEKymDMXrq4WpMO80NrmdMlLdf1POGSRChKDp7kUCQzFwM89hflyenuD1HNDcZcasnJsOid-h7bv70fEqGvbkJDrqq2zdXKKk-r4LYI1asD4KQToLjp64P2VRiIahwEqc6vwijDXkYfcsYTlfb60Pd2qqB7_62q5gSt_NhFRVipkymemk2DvidTz7QO3BhMF4DqIo61kjWagRL3pEJuRCt_we6F-fzRL4Bl9FLA_sGFMuGFyz2GhRCDaV0q830NZE9bZ1QosrmOpF3QvhuK9sZELU6QJin1uGJCUUGwNIYTqePR9Vp3qFz7aM7roe_c7H32wTwlsORkzY6hCcko1Vfj2eXHV3_yVoJ-vYnAGzeRrXg72ieyz0u6lZKUiFxSM-TcSWj4uHQFyAqISz-E1SBJipaPYBAz5fnf4LaNGuNxlFsk-GnfqNJovdnG0KZFo744iZkdiSg8CemHPQqRgavjq8GkzR4S-30nnwYleYjOv3b-OgCDQjEtD8TcqpYEucyOuDtd5h_GP9GmaeEj3Hd6VUYhJLRnl4Kh7uq5TjWjOswEuY4PswdFl6MXeowGCzXdychY-5iQwPoK4C=w615-h540-no" alt="phFa9FbbNsmx4EE8Fkpu4SveJk5rKp I1TFuOJrcSFXGBmTYrMbp6oE hi9Nu68rB7uAkk7 KnZT3aho3bMuzuD4piVzfwmo7NcmIt1EOQEXM465A4RTxl JElBkd7DtqiZhzYAj7DQ8VMViGBmv7ZaxIxAVv8RTEKymDMXrq4WpMO80NrmdMlLdf1POGSRChKDp7kUCQzFwM89hflyenuD1HNDcZcasnJsOid h7bv70fEqGvbkJDrqq2zdXKKk r4LYI1asD4KQToLjp64P2VRiIahwEqc6vwijDXkYfcsYTlfb60Pd2qqB7 62q5gSt NhFRVipkymemk2DvidTz7QO3BhMF4DqIo61kjWagRL3pEJuRCt we6F fzRL4Bl9FLA sGFMuGFyz2GhRCDaV0q830NZE9bZ1QosrmOpF3QvhuK9sZELU6QJin1uGJCUUGwNIYTqePR9Vp3qFz7aM7roe c7H32wTwlsORkzY6hCcko1Vfj2eXHV3 yVoJ vYnAGzeRrXg72ieyz0u6lZKUiFxSM TcSWj4uHQFyAqISz E1SBJipaPYBAz5fnf4LaNGuNxlFsk GnfqNJovdnG0KZFo744iZkdiSg8CemHPQqRgavjq8GkzR4S 30nnwYleYjOv3b OgCDQjEtD8TcqpYEucyOuDtd5h GP9GmaeEj3Hd6VUYhJLRnl4Kh7uq5TjWjOswEuY4PswdFl6MXeowGCzXdychY 5iQwPoK4C=w615 h540 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>第三封說你終止了產品</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/q7Z5EWfQiqwZ37A3RK_8RBpVwETJ2LkXylwBBMcjYdc78UEcnfFCtkbeMxkqwzRmlKj3B0KuLlygfV0UfygKg5Z6m96fkrlnCAWIrrUL4q48oUU-X7jCzrKbJFz4SUYCpIbO7vEP_R5LhDuya8xfJkvZa6_PMSCcYEUdV-u1bkeS7iFfWNJYXXiymDBhFQUjo-p6QPjrV1CRWHr8lZB9FtTfQiW365d_ttKIkQK3QPNTfc_GAzoUrXZO0W4f-6064DPHFGAKDXOaGLHnHv33J7T84RSzlXSvmlJHUSV-BhYHpfOtcWFhB3KTPSUPBsMcqSVgbNK-Yf3SL5AzBD_S9az9M6B-SPz92jM6SgSfT48h_Aj8KsGPp2a1t6bidmdW_jAaGmz4wHSr69AaSCeUmZBetqpZxJWCNObcRO_etbXyzMJKEVikX0jip-WKGidrEt_Oa0GkDayYA8eFA1A2HL9g3SFXJzHy5ENzBocIUrcLNH_l1FjHwnB42agqjt45GDXT2Se6AD4XCa9-jd0WZrftu9mHO-my96Qzd5IDkCfvWcJRZ1lnwmywAqH_s4icAg3psfulIxkXNVSRpzX85O8egEWwcr534hcjkZu_SeMApzErq_MzDtyXp8RNrvpWybqLCIc86xNoB1S2JP62W9P_iolnMt9m3w9jgU6Q46TNne_SB1cww_RWRRqoBdhfNTtMufU0164OL36o_rxon1lClZJThc8OkYuH5e6KXim66HXB=w611-h748-no" alt="q7Z5EWfQiqwZ37A3RK 8RBpVwETJ2LkXylwBBMcjYdc78UEcnfFCtkbeMxkqwzRmlKj3B0KuLlygfV0UfygKg5Z6m96fkrlnCAWIrrUL4q48oUU X7jCzrKbJFz4SUYCpIbO7vEP R5LhDuya8xfJkvZa6 PMSCcYEUdV u1bkeS7iFfWNJYXXiymDBhFQUjo p6QPjrV1CRWHr8lZB9FtTfQiW365d ttKIkQK3QPNTfc GAzoUrXZO0W4f 6064DPHFGAKDXOaGLHnHv33J7T84RSzlXSvmlJHUSV BhYHpfOtcWFhB3KTPSUPBsMcqSVgbNK Yf3SL5AzBD S9az9M6B SPz92jM6SgSfT48h Aj8KsGPp2a1t6bidmdW jAaGmz4wHSr69AaSCeUmZBetqpZxJWCNObcRO etbXyzMJKEVikX0jip WKGidrEt Oa0GkDayYA8eFA1A2HL9g3SFXJzHy5ENzBocIUrcLNH l1FjHwnB42agqjt45GDXT2Se6AD4XCa9 jd0WZrftu9mHO my96Qzd5IDkCfvWcJRZ1lnwmywAqH s4icAg3psfulIxkXNVSRpzX85O8egEWwcr534hcjkZu SeMApzErq MzDtyXp8RNrvpWybqLCIc86xNoB1S2JP62W9P iolnMt9m3w9jgU6Q46TNne SB1cww RWRRqoBdhfNTtMufU0164OL36o rxon1lClZJThc8OkYuH5e6KXim66HXB=w611 h748 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>第四封 &#8230; 也是降價的 promo code～ 到這邊整個域名已經成功從 GoDaddy 移轉出來了。</p>



<h2 id="step4" class="para wp-block-heading">Google Domains 驗證 Email</h2>



<p>這時候會收到一封 Google Domains 寄來的信，要求你驗證 Email，否則剛剛轉移來的 Domain 在 15 天後失效</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/QDQWwh6uuLFwjf84z5-c_H7HG5jY6wRBtJ9GgYwE8OpmVvHtepRJk8_FivojOO64flbvS19m_hLb3GbR0KM47ssBYwWLyvi6x5tZm2iN5oevMabUIL_3uFt5vZJPH2SO3Giz6jh74yV9E6CPNGbolU8Y130ChT6W46hxEDbqg9zTWnoWXhLJ77qUPSkuMM0AWAMa33iyR9Vkp91IhEpSISY9NaZPUul2FWf9NHci_FjBofg_iOf4aTtrj9_WHzmBTEXR0EiSynyp4mCmapPKkJuVomLN-18aMpCFcvTmGc9x_q6ecMW7Hs67FE9Cw7Fnpb99b9zEHGjtQOIl3OIJF7e-xmeQCrMPBwhwvvnumqHUv1iXpA0yzZZJHmKHicy3izODrIV8r_6RCnZwI42TEGhGKprvR-4ZJKFPvFjVvlldjcs55jvTqS3U_WIE6gZ6azjzusxzEFhMZqyZdKrdCgkfm9OwYw4nqEUjM9rtpjh1p1NqJqdcVquJvXgYib_9r06GtKX7amyVXwWAhQKigPsGCiuElIWUKcjrNkMUOZ61ZDlM1S5PXJAdhgyaY3mphws45Q9vJiLGJbpkVhWsFux8yAikjvl8GNC85PF6c_FyFOV7M3wTa_pLIHncDNLEVffebwx4Ti5ZqR6fgu-AJXXIYmUpd0_KB8D7TB-0KZ5QCPJ9UpUGHZLTKfWko47g-NsnwffUTVmhjmG_a8sifICfjrrbzZSiDgQcnYIJElXJNVgg=w621-h687-no" alt="QDQWwh6uuLFwjf84z5 c H7HG5jY6wRBtJ9GgYwE8OpmVvHtepRJk8 FivojOO64flbvS19m hLb3GbR0KM47ssBYwWLyvi6x5tZm2iN5oevMabUIL 3uFt5vZJPH2SO3Giz6jh74yV9E6CPNGbolU8Y130ChT6W46hxEDbqg9zTWnoWXhLJ77qUPSkuMM0AWAMa33iyR9Vkp91IhEpSISY9NaZPUul2FWf9NHci FjBofg iOf4aTtrj9 WHzmBTEXR0EiSynyp4mCmapPKkJuVomLN 18aMpCFcvTmGc9x q6ecMW7Hs67FE9Cw7Fnpb99b9zEHGjtQOIl3OIJF7e xmeQCrMPBwhwvvnumqHUv1iXpA0yzZZJHmKHicy3izODrIV8r 6RCnZwI42TEGhGKprvR 4ZJKFPvFjVvlldjcs55jvTqS3U WIE6gZ6azjzusxzEFhMZqyZdKrdCgkfm9OwYw4nqEUjM9rtpjh1p1NqJqdcVquJvXgYib 9r06GtKX7amyVXwWAhQKigPsGCiuElIWUKcjrNkMUOZ61ZDlM1S5PXJAdhgyaY3mphws45Q9vJiLGJbpkVhWsFux8yAikjvl8GNC85PF6c FyFOV7M3wTa pLIHncDNLEVffebwx4Ti5ZqR6fgu AJXXIYmUpd0 KB8D7TB 0KZ5QCPJ9UpUGHZLTKfWko47g NsnwffUTVmhjmG a8sifICfjrrbzZSiDgQcnYIJElXJNVgg=w621 h687 no GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains" title="GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains"></figure></div>



<p>驗證完之後就大功告成了！成功從 GoDaddy 移轉域名到 Google Domains 囉！！！</p>



<p>雖然上面圖片看起來步驟很多，但是實際做起來沒有那麼複雜，仔細想一下也算是合理</p>



<ul class="my-li bg-darkblue wp-block-list"><li>先跟 GoDaddy 說要移出</li><li>拿到 GoDaddy 授權碼</li><li>跟 Google Domains 說我要移入喔</li><li>給 Google Domains 授權碼</li><li>Google Domains 說不能白做工，移來要續約一年</li><li>Google Domains 設定好，等待 GoDaddy 確認中</li><li>到 GoDaddy 確認移出動作</li><li>Google Domains 說要驗證 Email 喔，不然根據規定會失效</li><li>完成移轉！</li></ul>



<p>十分鐘以內就完成這些動作了，去 whois 查詢可以看到註冊商已經變成 Google 了！帥呀！老皮～</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/6581/godaddy-%e6%8e%b0%e5%95%a6%ef%bd%9e%e5%be%9e-godaddy-%e7%a7%bb%e8%bd%89%e7%b6%b2%e5%9f%9f%e5%88%b0-google-domains/" data-wpel-link="internal">GoDaddy 掰啦～從 GoDaddy 移轉網域到 Google Domains</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/6581/godaddy-%e6%8e%b0%e5%95%a6%ef%bd%9e%e5%be%9e-godaddy-%e7%a7%bb%e8%bd%89%e7%b6%b2%e5%9f%9f%e5%88%b0-google-domains/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>排程自動更新 Facebook Token</title>
		<link>https://noter.tw/6574/%e6%8e%92%e7%a8%8b%e8%87%aa%e5%8b%95%e6%9b%b4%e6%96%b0-facebook-token/</link>
					<comments>https://noter.tw/6574/%e6%8e%92%e7%a8%8b%e8%87%aa%e5%8b%95%e6%9b%b4%e6%96%b0-facebook-token/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Thu, 21 Nov 2019 05:45:59 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[其他]]></category>
		<category><![CDATA[OpenGraph]]></category>
		<category><![CDATA[access_token]]></category>
		<category><![CDATA[權杖]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Facebook SDK]]></category>
		<category><![CDATA[自動更新]]></category>
		<category><![CDATA[token]]></category>
		<category><![CDATA[auto renew]]></category>
		<category><![CDATA[fb_exchange_token]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=6574</guid>

					<description><![CDATA[<p>小蛙負責的系統中，有一個後台需要定期去撈 Facebook 的資料，撈資料的時候需要 Facebook Token，而這個 token 之前都是到期後，小蛙手動去申請或展延，雖然很快，但是就是感覺麻煩&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/6574/%e6%8e%92%e7%a8%8b%e8%87%aa%e5%8b%95%e6%9b%b4%e6%96%b0-facebook-token/" data-wpel-link="internal">排程自動更新 Facebook Token</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>小蛙負責的系統中，有一個後台需要定期去撈 Facebook 的資料，撈資料的時候需要 Facebook Token，而這個 token 之前都是到期後，小蛙手動去申請或展延，雖然很快，但是就是感覺麻煩，如果忘記了後台會撈不到資料 &#8230;</p>



<span id="more-6574"></span>



<p>昨天要下班前又過期了，早上實在受不了，花一點時間 survey 相關資料，來讓他自動展延～這邊先說明小蛙的環境，主要的 code 會放在下面，再依照自己的需求修改使用。</p>



<ul class="my-li bg-darkblue wp-block-list"><li>crontab -e 每兩個月（或每一個月）去做更新</li><li>更新時需要拿舊的 token 去換新的回來</li><li>將取回的新 token 存到一個檔案</li><li>JSP 後台則從上述檔案中取得 token 以做後續處理</li></ul>



<p>大概了解小蛙要做的事情之後就開始吧！</p>



<h2 class="para wp-block-heading">建立 token 檔案</h2>



<p>小蛙把 token 放在 JSP 專案下的某個目錄，例如：WEB-INF/conf/token，把現有存活可用的 token 先貼進去，小蛙是直接把 facebook 回傳的 json 處理好之後，只留 token，不留其他 json 資訊（當然你要把 facebook 回傳的 json 全部留下來，之後在程式中處理也是可以，不過下次要更新的時候就要在 bash 中處理）</p>



<h2 class="para wp-block-heading">撰寫 bash 及加入排程</h2>



<p>建立一個新檔案 update_fb_token.sh，並填入以下內容，這裡的重點只有 Facebook 那串網址，其他的部份根據自己的需求修改即可</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">#!/bin/bash
otoken="$(head -n 1 上面建立的token位置)"
url="https://graph.facebook.com/oauth/access_token?client_id=你的app_id&amp;client_secret=fb後台登入後可以看到&amp;grant_type=fb_exchange_token&amp;fb_exchange_token=$otoken"
json=$(curl -X GET $url)
ntoken=$(echo $json | sed -E 's/.*"access_token":"([^"]*).*/\1/')
if [ ! -z "$ntoken" ]
then
        echo $ntoken &gt; 上面建立的token位置
fi</pre>



<p>上面的步驟簡單說一下，首先從本機 token 位置中讀取目前 token，連同 client_id、client_secret（這兩個 Facebook 後台都可以找到）去跟 Facebook 要一個新的 token，取得 Facebook 回傳的 json 後，小蛙只有簡單判斷能不能取到  access_token，如果有的話用 sed 擷取出來，並判斷不為空的話才更新到本機的 token 檔案裡，這裡可以根據自己的需求去做額外處理。</p>



<p>設定為可執行然後加入到 crontabe -e 定期執行</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">chmod +x update_fb_token.sh
crontab -e
# 每月 20 號 0:00 執行
0 0 20 * * /root/update_fb_token.sh</pre>



<h2 class="para wp-block-heading">怎麼使用</h2>



<p>小蛙這篇不打算講 OpenGraph 要怎麼使用，只是針對既有使用 OpenGraph 要每兩個月更新 token 的麻煩事，做了一個取巧的排程解法～已經把 token 存到一個指定的路徑中了，只要在使用 Facebook SDK 的地方，修改成動態載入這個 token 就可以正常運行了！省了很多麻煩～～</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/6574/%e6%8e%92%e7%a8%8b%e8%87%aa%e5%8b%95%e6%9b%b4%e6%96%b0-facebook-token/" data-wpel-link="internal">排程自動更新 Facebook Token</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/6574/%e6%8e%92%e7%a8%8b%e8%87%aa%e5%8b%95%e6%9b%b4%e6%96%b0-facebook-token/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Git GUI &#8211; (4) fetch、merge、pull、解決衝突情況(conflict)</title>
		<link>https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/</link>
					<comments>https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Mon, 18 Mar 2013 10:23:10 +0000</pubDate>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[TortoiseGit]]></category>
		<category><![CDATA[Git]]></category>
		<guid isPermaLink="false">http://wazai.net/?p=2737</guid>

					<description><![CDATA[<p>接續上篇文章 Git GUI &#8211; (3) branch、conflict、merge。 【六、取得最新檔案(fetch, merge, pull)】 在開發程式的時候，可能在同一時間有許多&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/" data-wpel-link="internal">Git GUI &#8211; (4) fetch、merge、pull、解決衝突情況(conflict)</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>接續上篇文章 <strong><a href="https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/" target="_blank" rel="noreferrer noopener" aria-label=" (在新分頁中開啟)" data-wpel-link="internal">Git GUI &#8211; (3) branch、conflict、merge</a></strong>。 </p>



<span id="more-2737"></span>



<h2 class="para wp-block-heading"><strong>【六、取得最新檔案(fetch, merge, pull)】</strong> </h2>



<p>在開發程式的時候，可能在同一時間有許多工程師做修改的動作，剛開始可以先用 fetch 指令來查看看遠端倉儲中是否有較新的檔案。如果有最新檔案，可以使用合併(merge)來將檔案合併到目前本地倉儲。fetch 跟 pull 的功能非常類似，fetch 負責檢查遠端倉儲中是否有更新版本的檔案，接著讓工程師手動合併檔案；而 pull 則是先呼叫 fetch 檢查有無新版本後，由系統自動做合併動作，也就是 pull = fetch + merge。遇到無法解決的衝突(conflict)才需要透過手動處理。 </p>



<p>開始改動檔案前先檢查是否有檔案版本是否有更新。滑鼠右鍵 -&gt; TortoiseGit -&gt; Fetch<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-JMSBQ2kkXUU/UNPUCReqFUI/AAAAAAAAHf8/5GAuWC_ktYo/image157.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-JMSBQ2kkXUU/UNPUCReqFUI/AAAAAAAAHf8/5GAuWC_ktYo/image157.jpg" alt="image157.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-ejA7RPFjviw/UNPUC_Gu3yI/AAAAAAAAHfg/bA-W55mzrRo/image159.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-ejA7RPFjviw/UNPUC_Gu3yI/AAAAAAAAHfg/bA-W55mzrRo/image159.jpg" alt="image159.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>「64f1f65..7c8a8af master&nbsp; -&gt;&nbsp; origin/master」表示有檔案更新(如上圖)，並且已經將檔案儲存在暫存區。下圖[up to date]則是表示目前本地倉儲中的檔案已經是最新版本(與遠端倉儲一致)。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-8mceavsPCZA/UNPUDrfYPAI/AAAAAAAAHfk/beNwZuCFcBE/image162.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-8mceavsPCZA/UNPUDrfYPAI/AAAAAAAAHfk/beNwZuCFcBE/image162.jpg" alt="image162.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>(此步驟目的在檢查版本差異，可跳過直接進入第5點合併差異)如果沒有版本更新就可以不用理會，若有版本更新要處理，可透過滑鼠右鍵「TortoiseGit」選單，接著點選「Diff with previous version」來查看有哪些內容的變更。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-dkteTTDBYBI/UNPUDvs_S-I/AAAAAAAAE9s/-30Nkp7g9qc/image170.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-dkteTTDBYBI/UNPUDvs_S-I/AAAAAAAAE9s/-30Nkp7g9qc/image170.png" alt="image170.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>點選「RefBrowse」設定要比較的來源檔案，將 Version 1 設定成遠端倉儲分支，Version 2 設定成本地倉儲分支。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-60xYPLn93Gk/UNPUD4EYU6I/AAAAAAAAE90/X1vqQg0WndY/image177.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-60xYPLn93Gk/UNPUD4EYU6I/AAAAAAAAE90/X1vqQg0WndY/image177.png" alt="image177.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-FDiiU4wIxA4/UNPUEBeAVSI/AAAAAAAAE94/x4TW26OiZGY/image179.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-FDiiU4wIxA4/UNPUEBeAVSI/AAAAAAAAE94/x4TW26OiZGY/image179.png" alt="image179.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>設定完 Ref 後，如下圖，下方的框框會顯示這兩個版本有哪些變動。(修改了README.txt，以及多了一個 newFile.txt 檔案。在檔案上點選滑鼠左鍵兩下，可以看到兩個版本的檔案內容比較。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-gd_QWR3etAk/UNPUEovwoHI/AAAAAAAAE-A/1ywzmBZ2jwc/image184.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-gd_QWR3etAk/UNPUEovwoHI/AAAAAAAAE-A/1ywzmBZ2jwc/image184.png" alt="image184.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-u2HYhwFNlQ0/UNPUFDiy0ZI/AAAAAAAAE-M/R2Zezt7R6PY/image186.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-u2HYhwFNlQ0/UNPUFDiy0ZI/AAAAAAAAE-M/R2Zezt7R6PY/image186.png" alt="image186.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>開始進行合併動作，滑鼠右鍵「TortoiseGit」選單 -&gt;「Merge…」，選擇要合併的分支，並填寫 Merge Message。如果沒有發生衝突，合併完成後會出現 Success 字樣。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-czkyoVIJF3E/UNPUFAiJB7I/AAAAAAAAE-I/znJeAK3Biog/image196.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-czkyoVIJF3E/UNPUFAiJB7I/AAAAAAAAE-I/znJeAK3Biog/image196.png" alt="image196.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-TxAzJehpiE8/UNPUFggJ5-I/AAAAAAAAE-Q/_hpTg7osbP0/image198.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-TxAzJehpiE8/UNPUFggJ5-I/AAAAAAAAE-Q/_hpTg7osbP0/image198.png" alt="image198.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>接著我們嘗試使用 pull 來更新並合併版本庫。滑鼠右鍵「TortoiseGit」選單 -&gt; 「Pull…」。選取遠端要 pull 的倉儲分支，出現 Success 的字樣表示成功合併。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-9Oi97smx1eU/UNPUF7fQfhI/AAAAAAAAHgA/MilpeLCHZsU/image206.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-9Oi97smx1eU/UNPUF7fQfhI/AAAAAAAAHgA/MilpeLCHZsU/image206.jpg" alt="image206.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-jcB0LThd5qM/UNPUFyOVpuI/AAAAAAAAHfo/vBk6QEPSQUw/image208.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-jcB0LThd5qM/UNPUFyOVpuI/AAAAAAAAHfo/vBk6QEPSQUw/image208.jpg" alt="image208.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<h2 class="para wp-block-heading"><strong>【七、衝突情況】</strong> </h2>



<p>衝突是使用版本控制經常遇到的情況，以下將介紹衝突處理方式。 </p>



<p>如下圖，當 push 檔案回遠端倉儲時，出現以下錯誤訊息。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-UfsYoEMX3cQ/UNPUGDreTjI/AAAAAAAAHfs/fsaBOzIZmT8/image210.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-UfsYoEMX3cQ/UNPUGDreTjI/AAAAAAAAHfs/fsaBOzIZmT8/image210.jpg" alt="image210.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>當 push 發生衝突時，可以透過 (1) fetch+merge 或 (2) pull 來解決。以下只說明使用 fetch + merge 處理方式( pull 操作較為簡單，可自行練習使用)。 </p>



<p>滑鼠右鍵「TortoiseGit」選單 -&gt; 「Fetch…」<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-JMSBQ2kkXUU/UNPUCReqFUI/AAAAAAAAHf8/5GAuWC_ktYo/image157.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-JMSBQ2kkXUU/UNPUCReqFUI/AAAAAAAAHf8/5GAuWC_ktYo/image157.jpg" alt="image157.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>從遠端倉儲抓了較新的資料，接著我們把他和我們的版本合併在一起。滑鼠右鍵「TortoiseGit」選單 -&gt; 「Merge…」。From的部份要選擇遠端的分支，例如：remotes/origin/master，填入Merge Message。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-ejA7RPFjviw/UNPUC_Gu3yI/AAAAAAAAHfg/bA-W55mzrRo/image159.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-ejA7RPFjviw/UNPUC_Gu3yI/AAAAAAAAHfg/bA-W55mzrRo/image159.jpg" alt="image159.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-czkyoVIJF3E/UNPUFAiJB7I/AAAAAAAAE-I/znJeAK3Biog/image196.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-czkyoVIJF3E/UNPUFAiJB7I/AAAAAAAAE-I/znJeAK3Biog/image196.png" alt="image196.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>系統自動執行合併時發現有衝突，導致無法自動合併。關閉視窗後，可以看到衝突的檔案變成黃色三角形驚嘆號。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-dBKGsarL7y0/UNPUAJmptrI/AAAAAAAAE8M/vYacMZh0kZE/image129.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-dBKGsarL7y0/UNPUAJmptrI/AAAAAAAAE8M/vYacMZh0kZE/image129.png" alt="image129.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-7TUcwDIi1xg/UNPUGkXkSwI/AAAAAAAAE-0/K-IuT8EtFzs/image229.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-7TUcwDIi1xg/UNPUGkXkSwI/AAAAAAAAE-0/K-IuT8EtFzs/image229.png" alt="image229.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>在 newFile.txt 上點選滑鼠右鍵開啟「TortoiseGit」選單 -&gt; 「Diff」，即可開始編輯有衝突的部份(<a href="file:///G:/%E6%88%91%E7%9A%84%E6%96%87%E4%BB%B6/git.doc#符號說明" data-wpel-link="internal">符號說明</a>)，修改完成後儲存檔案。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-j1pqWZPUtgI/UNPUKVG5SyI/AAAAAAAAHfw/yCQFEZWj_eg/image235.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-j1pqWZPUtgI/UNPUKVG5SyI/AAAAAAAAHfw/yCQFEZWj_eg/image235.jpg" alt="image235.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>接著把剛剛做的變更 commit 到本地倉儲中。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-W-v5jdJlgis/UNPUBIK765I/AAAAAAAAE8g/pDR7A0TIyKU/image140.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-W-v5jdJlgis/UNPUBIK765I/AAAAAAAAE8g/pDR7A0TIyKU/image140.png" alt="image140.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-dyUSerXv6RQ/UNPUHSL4IkI/AAAAAAAAE_A/sXxoAaFJAAI/image245.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-dyUSerXv6RQ/UNPUHSL4IkI/AAAAAAAAE_A/sXxoAaFJAAI/image245.png" alt="image245.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>將本地倉儲的變更 push 到遠端倉儲，以上為衝突發生時的處理流程。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-VbV_b4STdk0/UNPUH2cJkQI/AAAAAAAAE_U/YRRtnljJgq4/image250.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-VbV_b4STdk0/UNPUH2cJkQI/AAAAAAAAE_U/YRRtnljJgq4/image250.png" alt="image250.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-l-cAYhVqvP0/UNPUIdjbPoI/AAAAAAAAHf0/vxD0dVSKR-E/image252.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-l-cAYhVqvP0/UNPUIdjbPoI/AAAAAAAAHf0/vxD0dVSKR-E/image252.jpg" alt="image252.png" title="Git GUI - (4) fetch、merge、pull、解決衝突情況(conflict)"></a></figure></div>



<p>本文完。有很多情況下沒辦法使用 GUI 介面，可到<strong><a rel="noreferrer noopener nofollow external" href="http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/" target="_blank" data-wpel-link="external" class="wpel-icon-right">參考資料1<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong>, <strong><a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/01/21/how-to-use-git-2-basic-usage-and-worflow/" target="_blank" data-wpel-link="external" class="wpel-icon-right">參考資料2<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong>, <strong><a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/02/29/git-scenario/" target="_blank" data-wpel-link="external" class="wpel-icon-right">參考資料3<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong>，這三篇文章涵蓋了幾乎所有新手會遇到的問題！ </p>



<h2 class="para wp-block-heading">參考資料</h2>



<ol class="my-li bg-darkblue wp-block-list"><li>Git 教學(1) : Git 的基本使用 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 教學(2)：Git Branch 的操作與基本工作流程 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/01/21/how-to-use-git-2-basic-usage-and-worflow/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://blog.gogojimmy.net/2012/01/21/how-to-use-git-2-basic-usage-and-worflow/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 情境劇 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/02/29/git-scenario/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://blog.gogojimmy.net/2012/02/29/git-scenario/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li></ol>



<p><strong>Git 系列文章：</strong></p>



<ul class="my-li bg-darkblue wp-block-list"><li><a href="https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/" data-wpel-link="internal">Git GUI – (1) TortoiseGit, msysgit 安裝</a></li><li><a href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" data-wpel-link="internal">Git GUI – (2) 設定、Clone、Add、Modify</a></li><li><a href="https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/" data-wpel-link="internal">Git GUI – (3) branch、conflict、merge</a></li><li><a href="https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/" data-wpel-link="internal">Git GUI – (4) fetch、merge、pull、解決衝突情況(conflict)</a></li><li><a href="https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/" data-wpel-link="internal">[參考文章] 使用 Git 做為網站開發版本控管工具</a></li></ul>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/" data-wpel-link="internal">Git GUI &#8211; (4) fetch、merge、pull、解決衝突情況(conflict)</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Git GUI &#8211; (3) branch、conflict、merge</title>
		<link>https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/</link>
					<comments>https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Mon, 18 Mar 2013 10:22:03 +0000</pubDate>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[TortoiseGit]]></category>
		<guid isPermaLink="false">http://wazai.net/?p=2734</guid>

					<description><![CDATA[<p>接續上篇文章 Git GUI &#8211; (2) 設定、Clone、Add、Modify。 【四、建立分支(branch)】 如果有新功能要開發或是既有功能修改，但又不想影響到主要程式(maste&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/" data-wpel-link="internal">Git GUI &#8211; (3) branch、conflict、merge</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>接續上篇文章 <strong><a href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" target="_blank" rel="noreferrer noopener" aria-label=" (在新分頁中開啟)" data-wpel-link="internal">Git GUI &#8211; (2) 設定、Clone、Add、Modify</a></strong>。 </p>



<span id="more-2734"></span>



<h2 class="para wp-block-heading"><strong>【四、建立分支(branch)】</strong> </h2>



<p>如果有新功能要開發或是既有功能修改，但又不想影響到主要程式(master)的運作，這時候可以透過建立分支(branch)，所有的修改動作都在「分支」中進行，各個分支是獨立作業的。比如要開發某個大功能，大功能中又切分很多細小的功能，我們可以在主線分支(master)下建立一個大功能分支，接著在大功能分支下，又切出許多細小功能的分支，也可以在分支的下面建立更細的分支，形成多重架構。當分支開發、測試結束後，再透過合併(merge)的動作，將所有分支合併回主線分支(master)，或透過重造(rebase)的動作，將目前開發的分支(branch)提升為主線分支(master)。 </p>



<p>在E:\GitDaal\下點選滑鼠右鍵，接著選取「Create Branch…」。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-PkMLdcGwCmY/UNPT9mwqNUI/AAAAAAAAE7E/2U2sShBTkII/image100.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-PkMLdcGwCmY/UNPT9mwqNUI/AAAAAAAAE7E/2U2sShBTkII/image100.png" alt="image100.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-Ub1SVDkouB8/UNPT9-6IiPI/AAAAAAAAE7Q/I2wh9FrmSXU/image101.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-Ub1SVDkouB8/UNPT9-6IiPI/AAAAAAAAE7Q/I2wh9FrmSXU/image101.png" alt="image101.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<p>輸入分支名稱，例如：newBranch。如果是要建立其它分支下的分支，Base On 的部份選擇 Branch 的選項，再選擇要基於哪個分支下建立新分支，這邊由於我們是基於主線分支(master)建立分支，因此選擇「HEAD (master)」。將「Switch to new branch」打勾，當分支建立完成後，會將目前的環境切換到新建立的分支下。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="//lh4.ggpht.com/-ueZfaX3czek/UNPT-agP51I/AAAAAAAAE7U/82eVue0qmTI/image107.png" alt="image107.png" title="Git GUI - (3) branch、conflict、merge"></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-MGMJi9GsJYU/UNPT-vQXBmI/AAAAAAAAE7g/YuD-xY4BLfU/image109.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-MGMJi9GsJYU/UNPT-vQXBmI/AAAAAAAAE7g/YuD-xY4BLfU/image109.png" alt="image109.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<p> 在新分支中編輯的東西，並不會影響到主線分支(master)，當編輯到一段落，將新分支中的東西 commit 到本地倉儲(commit 請參考<strong><a href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" target="_blank" rel="noreferrer noopener" aria-label=" (在新分頁中開啟)" data-wpel-link="internal">三、修改(新增)檔案</a></strong>)。點選滑鼠右鍵，選擇「Git Branch」-&gt;「master」可快速切換至 master。master 看見的 README.txt 與 newBranch 看見的 README.txt 是不一樣的。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="//lh5.ggpht.com/-StRGocwKYRc/UNPT-0fGw_I/AAAAAAAAE7k/ub9zrDIOSKM/image111.png" alt="image111.png" title="Git GUI - (3) branch、conflict、merge"></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-T2UGhA4OaQ8/UNPT-8rmqkI/AAAAAAAAE7o/7GVVDqs3Bv0/image113.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-T2UGhA4OaQ8/UNPT-8rmqkI/AAAAAAAAE7o/7GVVDqs3Bv0/image113.png" alt="image113.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<p>如果不知道自己現在身處於哪個分支，只要點選滑鼠右鍵，就可以在上方紅色框框看到目前所在分支。「Git Branch」子選單下有打勾的就是目前分支。以及「Git Commit -&gt; “newBranch”」也可以看到現在是在 newBranch 分支下。</p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-ErfglxTp4Y0/UNPT_VetheI/AAAAAAAAE7w/F-8-S4FeXVk/image117.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-ErfglxTp4Y0/UNPT_VetheI/AAAAAAAAE7w/F-8-S4FeXVk/image117.png" alt="image117.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<h2 class="para wp-block-heading"><strong>【五、合併分支 (merge) 並解決衝突 (conflict)】</strong> </h2>



<p>當新的分支開發到一個段落時，Git 可以提供我們合併(merge)的功能，意即將目前分支(newBranch)開發的結果合併到主線分支(master)。 </p>



<p>滑鼠右鍵選單-&gt;「TortoiseGit」-&gt;「Merge」<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-tVs4h1J_128/UNPT_nEjFGI/AAAAAAAAE70/br2y15I800U/image119.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-tVs4h1J_128/UNPT_nEjFGI/AAAAAAAAE70/br2y15I800U/image119.png" alt="image119.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<p>Branch 部份選擇要被合併的分支，我們要把 newBranch 合併回 master，因此選擇 newBranch。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-FMT4iAUBMDw/UNPT_m1NqmI/AAAAAAAAE78/A0HZbxCg_LY/image124.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-FMT4iAUBMDw/UNPT_m1NqmI/AAAAAAAAE78/A0HZbxCg_LY/image124.png" alt="image124.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-dQcjqHiAsiU/UNPUAB1LsuI/AAAAAAAAE8E/OHmicgOB2Kg/image126.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-dQcjqHiAsiU/UNPUAB1LsuI/AAAAAAAAE8E/OHmicgOB2Kg/image126.png" alt="image126.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<p>若出現 Success 的字樣表示合併完成，沒有出現衝突的情況。此時視情況是否保留該 branch (可以理解成分支開發的子功能已經「加入」主線分支，該支線是否繼續保留開發功能或功成身退)。 </p>



<p>如果合併時產生衝突(Conflict)的錯誤訊息，表示必須使用手動的方式來處理衝突。衝突的檔案會出現黃色三角形驚嘆號的圖樣。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-dBKGsarL7y0/UNPUAJmptrI/AAAAAAAAE8M/vYacMZh0kZE/image129.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-dBKGsarL7y0/UNPUAJmptrI/AAAAAAAAE8M/vYacMZh0kZE/image129.png" alt="image129.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-se527DEmiZE/UNPUASsGQ3I/AAAAAAAAE8Q/4nDJ05GNf3s/image131.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-se527DEmiZE/UNPUASsGQ3I/AAAAAAAAE8Q/4nDJ05GNf3s/image131.png" alt="image131.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<p>

在衝突的檔案上，開啟滑鼠右鍵 TortoiseGit 選單中的「Diff」。左邊是倉儲中上一個版本的檔案內容，只有五行內容，右邊則分為兩部分，從「&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD」到「=======」，表示最新版本中的內容，有六行內容，而「=======」到「&gt;&gt;&gt;&gt;&gt;&gt;&gt; newBranch」是要合併的分支中的內容。此處視情況修改檔案內容，並把「&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD」「=======」「&gt;&gt;&gt;&gt;&gt;&gt;&gt; newBranch」符號拿掉後存檔即完成修改。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-74sH3ysHUZ4/UNPUArTn01I/AAAAAAAAE8U/JyOxnU7jrzY/image133.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-74sH3ysHUZ4/UNPUArTn01I/AAAAAAAAE8U/JyOxnU7jrzY/image133.png" alt="image133.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-S1R-GvsIXZ4/UNPUA7n3WEI/AAAAAAAAE8w/X18aSZ9lbUw/image135.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-S1R-GvsIXZ4/UNPUA7n3WEI/AAAAAAAAE8w/X18aSZ9lbUw/image135.png" alt="image135.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<p>修改完將檔案 commit 回本地倉儲。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-Hk9ersfBd6c/UNPUHGZ4XUI/AAAAAAAAE_I/YNvbNa-gtzM/image243.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-Hk9ersfBd6c/UNPUHGZ4XUI/AAAAAAAAE_I/YNvbNa-gtzM/image243.png" alt="image243.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<p>接著選取滑鼠右鍵選單中的「Git History」，如下圖，上方為目前Git的分支狀況，修改者以及修改時間…等，下方為修改內容以及註解…等等資訊。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-Oa_70h1qyq0/UNPUBDrAR5I/AAAAAAAAE8o/danZe-ABNfY/image143.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-Oa_70h1qyq0/UNPUBDrAR5I/AAAAAAAAE8o/danZe-ABNfY/image143.png" alt="image143.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-TksSwH0gHZY/UNPUBuFffxI/AAAAAAAAHfc/gXvWFNtTCX0/image145.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-TksSwH0gHZY/UNPUBuFffxI/AAAAAAAAHfc/gXvWFNtTCX0/image145.jpg" alt="image145.png" title="Git GUI - (3) branch、conflict、merge"></a></figure></div>



<p>下一篇文章：<strong><a href="https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/" target="_blank" rel="noreferrer noopener" aria-label=" (在新分頁中開啟)" data-wpel-link="internal">Git GUI &#8211; (4) fetch、merge、pull、解決衝突情況(conflict)</a></strong></p>



<h2 class="para wp-block-heading">參考資料</h2>



<ol class="my-li bg-darkblue wp-block-list"><li>Git 教學(1) : Git 的基本使用 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 教學(2)：Git Branch 的操作與基本工作流程 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/01/21/how-to-use-git-2-basic-usage-and-worflow/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://blog.gogojimmy.net/2012/01/21/how-to-use-git-2-basic-usage-and-worflow/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 情境劇 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/02/29/git-scenario/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://blog.gogojimmy.net/2012/02/29/git-scenario/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li></ol>



<p><strong>Git 系列文章：</strong></p>



<ul class="my-li bg-darkblue wp-block-list"><li><a href="https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/" data-wpel-link="internal">Git GUI – (1) TortoiseGit, msysgit 安裝</a></li><li><a href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" data-wpel-link="internal">Git GUI – (2) 設定、Clone、Add、Modify</a></li><li><a href="https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/" data-wpel-link="internal">Git GUI – (3) branch、conflict、merge</a></li><li><a href="https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/" data-wpel-link="internal">Git GUI – (4) fetch、merge、pull、解決衝突情況(conflict)</a></li><li><a href="https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/" data-wpel-link="internal">[參考文章] 使用 Git 做為網站開發版本控管工具</a></li></ul>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/" data-wpel-link="internal">Git GUI &#8211; (3) branch、conflict、merge</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Git GUI &#8211; (2) 設定、Clone、Add、Modify</title>
		<link>https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/</link>
					<comments>https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Mon, 18 Mar 2013 10:21:24 +0000</pubDate>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[TortoiseGit]]></category>
		<guid isPermaLink="false">http://wazai.net/?p=2569</guid>

					<description><![CDATA[<p>依照上一篇文章 Git GUI &#8211; (1) TortoiseGit, msysgit 安裝 安裝好 Git 工具後，這篇大概記錄一下怎麼處理 Clone, Add, Modify &#82&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" data-wpel-link="internal">Git GUI &#8211; (2) 設定、Clone、Add、Modify</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>依照上一篇文章 <strong><a href="https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/" data-wpel-link="internal">Git GUI &#8211; (1) TortoiseGit, msysgit 安裝</a></strong> 安裝好 Git 工具後，這篇大概記錄一下怎麼處理 Clone, Add, Modify &#8230; 等操作。 </p>



<span id="more-2569"></span>



<p>安裝完 TortoiseGit 及 msysgit 之後，即可開始使用 TortoiseGit 來管理專案，本範例主要描述如何使用 TortoiseGit 來管理既有專案，包括從遠端倉儲複製資料(clone)，操作本地倉儲(add, commit)，操作遠端倉儲(push)以及處理衝突(conflict)。 </p>



<h2 class="para wp-block-heading"><strong>【一、基本設定】</strong> </h2>



<p>在本機電腦上新增一個資料夾，例如：E:\GitDaal\，進入該資料夾，點選滑鼠右鍵，選取 TortoiseGit -&gt; Settings。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-yAYaXPG45ag/UNPT5nbYQfI/AAAAAAAAE5k/mGTrAhyqGLM/image049.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-yAYaXPG45ag/UNPT5nbYQfI/AAAAAAAAE5k/mGTrAhyqGLM/image049.png" alt="image049.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-EVrisxKFsKg/UNPT45guELI/AAAAAAAAE5Q/PeDpEw5R_b4/image048.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-EVrisxKFsKg/UNPT45guELI/AAAAAAAAE5Q/PeDpEw5R_b4/image048.png" alt="image048.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>輸入個人資料(Config)，名稱及電子郵件。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-JvgjkG-udZE/UNPT5sqMiPI/AAAAAAAAHfI/X2pzCQSEZyM/image053.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-JvgjkG-udZE/UNPT5sqMiPI/AAAAAAAAHfI/X2pzCQSEZyM/image053.jpg" alt="image053.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>設定遠端伺服器(Remote)，Remote name可以隨便輸入，輸入您的 git Url 後點選 Add New，設定完成後按確定關閉設定視窗。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-WwV_6BIyg4Y/UNPT508YzUI/AAAAAAAAHfM/ki5iWZfjafo/image059.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-WwV_6BIyg4Y/UNPT508YzUI/AAAAAAAAHfM/ki5iWZfjafo/image059.jpg" alt="image059.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<h2 class="para wp-block-heading"><strong>【二、從遠端倉儲複製檔案 (Git Clone)】</strong> </h2>



<p>進入剛剛新增的 E:\GitDaal\ 資料夾，點選滑鼠右鍵選取「Git Clone…」。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-b6qlIDeTpXU/UNPT6TrRhVI/AAAAAAAAE5s/4u7CRXJQXjM/image062.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-b6qlIDeTpXU/UNPT6TrRhVI/AAAAAAAAE5s/4u7CRXJQXjM/image062.png" alt="image062.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>填入您的 Git URL，按下 OK 開始複製遠端倉儲的目錄及檔案。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-hHNioiyLOPQ/UNPT6sJZTjI/AAAAAAAAHfQ/JUIGL-St8Sw/image066.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-hHNioiyLOPQ/UNPT6sJZTjI/AAAAAAAAHfQ/JUIGL-St8Sw/image066.jpg" alt="image066.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>看到 Success 表示目錄及檔案複製成功。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-_79P1QcATzQ/UNPT616g0-I/AAAAAAAAHfU/iOKeZv7FeRY/image068.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-_79P1QcATzQ/UNPT616g0-I/AAAAAAAAHfU/iOKeZv7FeRY/image068.jpg" alt="image068.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>可看到 E:\GitDaal\ 資料夾及以下所有資料夾都有綠色圓圈的勾勾，表示所有檔案都複製完成，綠色表示目前工作目錄的檔案與本地倉儲的檔案一致。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-GaRTwK7R-lc/UNPT7Ob3wsI/AAAAAAAAE6M/tW3i23z_fNE/image071.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-GaRTwK7R-lc/UNPT7Ob3wsI/AAAAAAAAE6M/tW3i23z_fNE/image071.png" alt="image071.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<h2 class="para wp-block-heading"><strong>【三、修改(新增)檔案】</strong> </h2>



<p>下圖為 Git 工作流程，本範例中的 E:\GitDaal\ 即為工作目錄(working directory)，經過編輯的檔案必須先透過存放進暫存區(staging area)後才可以成功儲存至本地倉儲(local repository)，也只有在本地倉儲中的檔案及資料，才可以透過推送(push)的方式分享到遠端倉儲(remote repository)。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-XgbWetExMgk/UNPT7aHo7PI/AAAAAAAAE6I/AFqTWKBncXI/image073.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-XgbWetExMgk/UNPT7aHo7PI/AAAAAAAAE6I/AFqTWKBncXI/image073.png" alt="image073.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>用文字編輯器開啟剛剛透過 Git Clone 複製下來的 README.txt，修改完後存檔關閉檔案。(E:\GitDaal\README.txt)例如增加文字 ” Git test by Hans”。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-IrfCH0tQugU/UNPT7-dkLfI/AAAAAAAAE6Q/2TFBLjJ9_yw/image076.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-IrfCH0tQugU/UNPT7-dkLfI/AAAAAAAAE6Q/2TFBLjJ9_yw/image076.png" alt="image076.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>可以看到從原本的勾勾變成紅色圈圈驚嘆號，表示目前「工作目錄中」的檔案已經和「本地倉儲中」的檔案不一致了。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-vdriGynsiSQ/UNPT8E_S2wI/AAAAAAAAE6U/9CkhOeslG2A/image079.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-vdriGynsiSQ/UNPT8E_S2wI/AAAAAAAAE6U/9CkhOeslG2A/image079.png" alt="image079.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>TortoiseGit 簡化了上圖中 git add 指令，因此透過 TortoiseGit 可以直接做 commit 到本地倉儲的動作。點選滑鼠右鍵，選擇 Git Commit -&gt; “master”<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-RoZueCYb0ng/UNPT9327KPI/AAAAAAAAE7M/BKydPQFyBwU/image082.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-RoZueCYb0ng/UNPT9327KPI/AAAAAAAAE7M/BKydPQFyBwU/image082.png" alt="image082.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>開啟 Commit 介面，Message 部份填入這次 Commit 的資訊，TortoiseGit 會將工作目錄中所有被修改過的檔案列在下方的列表中，這邊我們只更動了 README.txt 檔案，打勾表示同意將該檔案 commit 至本地倉儲。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-7BkBhqBiBjA/UNPT8UDhcxI/AAAAAAAAE6c/oaF3ksqiM4E/image086.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-7BkBhqBiBjA/UNPT8UDhcxI/AAAAAAAAE6c/oaF3ksqiM4E/image086.png" alt="image086.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>出現 &nbsp;Success 表示檔案已成功 commit 到本地倉儲。TortoiseGit 為了讓使用者更方便，提供了左下角的 Push 按鈕，使用者可直接將檔案 push 到遠端倉儲，如果不想在此時 push，按下滑鼠右鍵的 TortoiseGit 選單中也有 push 的指令可選擇。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-Fx7Jn60IifM/UNPT8uorfKI/AAAAAAAAE6g/owhY970DRbI/image088.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-Fx7Jn60IifM/UNPT8uorfKI/AAAAAAAAE6g/owhY970DRbI/image088.png" alt="image088.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>如果要增加新的遠端倉儲，可以點選「Manage」新增。點選 OK 之後如果出現 Success 字樣表示這次的 push 完成。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-G7Thp6c1JX8/UNPT9BJv9uI/AAAAAAAAE60/ojQfQ1EWpts/image094.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-G7Thp6c1JX8/UNPT9BJv9uI/AAAAAAAAE60/ojQfQ1EWpts/image094.png" alt="image094.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-YdwmKtt3aiM/UNPT9EfHT7I/AAAAAAAAHfY/42Scom7fcd8/image096.jpg" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-YdwmKtt3aiM/UNPT9EfHT7I/AAAAAAAAHfY/42Scom7fcd8/image096.jpg" alt="image096.png" title="Git GUI - (2) 設定、Clone、Add、Modify"></a></figure></div>



<p>如果沒有出現 Success 可能是發生了衝突(conflict)，請參考 <strong><a href="https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/" target="_blank" rel="noreferrer noopener" aria-label=" (在新分頁中開啟)" data-wpel-link="internal">Git GUI &#8211; (4) fetch、merge、pull、解決衝突情況(conflict)</a></strong>。 </p>



<p>下一篇文章：<strong><a href="https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/" target="_blank" rel="noreferrer noopener" aria-label=" (在新分頁中開啟)" data-wpel-link="internal">Git GUI &#8211; (3) branch、conflict、merge</a></strong></p>



<p><strong>Git 系列文章：</strong></p>



<ul class="my-li bg-darkblue wp-block-list"><li><a href="https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/" data-wpel-link="internal">Git GUI – (1) TortoiseGit, msysgit 安裝</a></li><li><a href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" data-wpel-link="internal">Git GUI – (2) 設定、Clone、Add、Modify</a></li><li><a href="https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/" data-wpel-link="internal">Git GUI – (3) branch、conflict、merge</a></li><li><a href="https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/" data-wpel-link="internal">Git GUI – (4) fetch、merge、pull、解決衝突情況(conflict)</a></li><li><a href="https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/" data-wpel-link="internal">[參考文章] 使用 Git 做為網站開發版本控管工具</a></li></ul>



<h2 class="para wp-block-heading">參考資料</h2>



<ol class="my-li bg-darkblue wp-block-list"><li>Git 教學(1) : Git 的基本使用 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 教學(2)：Git Branch 的操作與基本工作流程 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/01/21/how-to-use-git-2-basic-usage-and-worflow/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://blog.gogojimmy.net/2012/01/21/how-to-use-git-2-basic-usage-and-worflow/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 情境劇 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/02/29/git-scenario/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://blog.gogojimmy.net/2012/02/29/git-scenario/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li></ol>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" data-wpel-link="internal">Git GUI &#8211; (2) 設定、Clone、Add、Modify</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Git GUI &#8211; (1) TortoiseGit, msysgit 安裝</title>
		<link>https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/</link>
					<comments>https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Mon, 18 Mar 2013 10:20:10 +0000</pubDate>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[msysgit]]></category>
		<category><![CDATA[TortoiseGit]]></category>
		<guid isPermaLink="false">http://wazai.net/?p=2563</guid>

					<description><![CDATA[<p>Git 是一個分散式版本控管的好工具(維基百科的 Git 介紹)，這邊從簡單、有圖形化界面的開始吧！注意：小蛙也還是 Git 新手，很多指令都要去查，這系列文章在實際做法上可能會有所出入！如果發現有問&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/" data-wpel-link="internal">Git GUI &#8211; (1) TortoiseGit, msysgit 安裝</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>Git 是一個分散式版本控管的好工具(<a rel="noreferrer noopener nofollow external" href="http://zh.wikipedia.org/wiki/Git" target="_blank" data-wpel-link="external" class="wpel-icon-right">維基百科的 Git 介紹<span class="wpel-icon wpel-image wpel-icon-6"></span></a>)，這邊從簡單、有圖形化界面的開始吧！注意：小蛙也還是 Git 新手，很多指令都要去查，這系列文章在實際做法上可能會有所出入！如果發現有問題，可以在文章下面留言，感恩喔！ </p>



<span id="more-2563"></span>



<h2 class="para wp-block-heading"> <strong>【安裝TortoiseGit】</strong> </h2>



<p>TortoiseGit 這個工具是由著名的 Tortoise 所開發，讓使用者在 Windwos 環境下可透過圖形化的操作方式，簡化了以往操作 Git 需透過命令列下指令的麻煩。 </p>



<p>下載 TortoiseGit-1.5.8.0-32bit.msi，<a rel="noreferrer noopener nofollow external" href="http://download.tortoisegit.org/tgit/" target="_blank" data-wpel-link="external" class="wpel-icon-right">下載位址<span class="wpel-icon wpel-image wpel-icon-6"></span></a>。(<a rel="noreferrer noopener nofollow external" href="http://download.tortoisegit.org/tgit/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://download.tortoisegit.org/tgit/<span class="wpel-icon wpel-image wpel-icon-6"></span></a>)<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-v_N6a3gmyZk/UNPT0TgG2jI/AAAAAAAAE3k/SrfFjXl_oxU/image001.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-v_N6a3gmyZk/UNPT0TgG2jI/AAAAAAAAE3k/SrfFjXl_oxU/image001.png" alt="image001.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<p>開始安裝，預設安裝即可，安裝完重新啟動電腦。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="//lh3.ggpht.com/-1p3xIxihTk8/UNPT0ew2ihI/AAAAAAAAE3s/IS5KxSw82Xc/image007.png" alt="image007.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="//lh4.ggpht.com/-eleMlM3C8Tc/UNPT0eqbeiI/AAAAAAAAE3o/1QpON5-QW6U/image009.png" alt="image009.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-P13tyVE2QBM/UNPT02GqYXI/AAAAAAAAE30/Z7mB3BJI4as/image011.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-P13tyVE2QBM/UNPT02GqYXI/AAAAAAAAE30/Z7mB3BJI4as/image011.png" alt="image011.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-duoFlPrJam4/UNPT1AU2MVI/AAAAAAAAE3w/WzP5XGvrpLM/image014.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-duoFlPrJam4/UNPT1AU2MVI/AAAAAAAAE3w/WzP5XGvrpLM/image014.png" alt="image014.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-EHJ3HAcEC50/UNPT1beYa4I/AAAAAAAAE34/eE7Fj5Z9EDU/image016.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-EHJ3HAcEC50/UNPT1beYa4I/AAAAAAAAE34/eE7Fj5Z9EDU/image016.png" alt="image016.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-dFG7lIiuJg4/UNPT15U9UlI/AAAAAAAAE4E/3BLgKKBHm3o/image018.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-dFG7lIiuJg4/UNPT15U9UlI/AAAAAAAAE4E/3BLgKKBHm3o/image018.png" alt="image018.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<p>安裝完 TortoiseGit 重新開機。 </p>



<h2 class="para wp-block-heading"> <strong>【安裝msysgit】</strong> </h2>



<p>

下載 Git-1.7.3.1-preview20101002.exe，<a href="http://msysgit.github.io/" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">下載位址<span class="wpel-icon wpel-image wpel-icon-6"></span></a>。(<a href="http://msysgit.github.io/" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">http://msysgit.github.io/<span class="wpel-icon wpel-image wpel-icon-6"></span></a>) <br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh5.ggpht.com/-7gjtiopZoBE/UNPT2MxB68I/AAAAAAAAE4M/ccIVogIka_U/image020.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh5.ggpht.com/-7gjtiopZoBE/UNPT2MxB68I/AAAAAAAAE4M/ccIVogIka_U/image020.png" alt="image020.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<p>開始安裝 Git。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-Hko9tRE6LqA/UNPT2EGsesI/AAAAAAAAE4Q/QdI490aC0SI/image023.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-Hko9tRE6LqA/UNPT2EGsesI/AAAAAAAAE4Q/QdI490aC0SI/image023.png" alt="image023.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-sn_e6-MyTuA/UNPT2ikkYjI/AAAAAAAAE4c/97gOtwL4z7E/image025.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-sn_e6-MyTuA/UNPT2ikkYjI/AAAAAAAAE4c/97gOtwL4z7E/image025.png" alt="image025.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-FqjQmB9ufmw/UNPT3GwYeJI/AAAAAAAAE4o/W_6opOvjLlc/image027.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-FqjQmB9ufmw/UNPT3GwYeJI/AAAAAAAAE4o/W_6opOvjLlc/image027.png" alt="image027.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="//lh3.ggpht.com/-5Rp5HfLFUfQ/UNPT3tuVgbI/AAAAAAAAE4s/ap_m4S6dZjc/image031.png" alt="image031.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-U5emFqnrnsg/UNPT31GkrAI/AAAAAAAAE44/GsuPlSzLuzM/image033.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-U5emFqnrnsg/UNPT31GkrAI/AAAAAAAAE44/GsuPlSzLuzM/image033.png" alt="image033.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<p>SSH 工具的選擇，請選擇「Use (Tortoise)Plink」的選項，並且將路徑指定到剛剛安裝的 TortoiseGit\ 目錄下的TortoisePlink.exe。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh3.ggpht.com/-ncKwtp0fJPY/UNPT4KEfYqI/AAAAAAAAE48/U26PA8rOHX4/image037.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh3.ggpht.com/-ncKwtp0fJPY/UNPT4KEfYqI/AAAAAAAAE48/U26PA8rOHX4/image037.png" alt="image037.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<p>安裝完成後重新啟動電腦。<br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh4.ggpht.com/-YwoxHxP0jTk/UNPT4adfFzI/AAAAAAAAE5A/h5_i8psqMlw/image040.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh4.ggpht.com/-YwoxHxP0jTk/UNPT4adfFzI/AAAAAAAAE5A/h5_i8psqMlw/image040.png" alt="image040.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-7Pw78dcbrn8/UNPT41cTkGI/AAAAAAAAE5M/Ojv-WkCcQYg/image042.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-7Pw78dcbrn8/UNPT41cTkGI/AAAAAAAAE5M/Ojv-WkCcQYg/image042.png" alt="image042.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><a href="http://lh6.ggpht.com/-_CK8tgnYyog/UNPT45BLqrI/AAAAAAAAE5I/Wa56x5X_OVU/image045.png" target="_blank" rel="noopener nofollow external noreferrer" data-wpel-link="external"><img decoding="async" src="//lh6.ggpht.com/-_CK8tgnYyog/UNPT45BLqrI/AAAAAAAAE5I/Wa56x5X_OVU/image045.png" alt="image045.png" title="Git GUI - (1) TortoiseGit, msysgit 安裝"></a></figure></div>



<p>下一篇：<strong><a aria-label=" (在新分頁中開啟)" href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">Git GUI &#8211; (2) 設定、Clone、Add、Modify</a></strong></p>



<p><strong>Git 系列文章：</strong></p>



<ul class="my-li bg-darkblue wp-block-list"><li><a href="https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/" data-wpel-link="internal">Git GUI – (1) TortoiseGit, msysgit 安裝</a></li><li><a href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" data-wpel-link="internal">Git GUI – (2) 設定、Clone、Add、Modify</a></li><li><a href="https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/" data-wpel-link="internal">Git GUI – (3) branch、conflict、merge</a></li><li><a href="https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/" data-wpel-link="internal">Git GUI – (4) fetch、merge、pull、解決衝突情況(conflict)</a></li><li><a href="https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/" data-wpel-link="internal">[參考文章] 使用 Git 做為網站開發版本控管工具</a></li></ul>



<h2 class="para wp-block-heading">參考資料</h2>



<ol class="my-li bg-darkblue wp-block-list"><li>Git @ 維基百科<a rel="noreferrer noopener nofollow external" href="http://zh.wikipedia.org/wiki/Git" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://zh.wikipedia.org/wiki/Git<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>tortoisegit @&nbsp;Google Project Hosting<a rel="noreferrer noopener nofollow external" href="https://code.google.com/p/tortoisegit/downloads/list" target="_blank" data-wpel-link="external" class="wpel-icon-right">https://code.google.com/p/tortoisegit/downloads/list<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>msysgit @ Google Project Hosting<a rel="noreferrer noopener nofollow external" href="https://code.google.com/p/msysgit/downloads/list?can=3" target="_blank" data-wpel-link="external" class="wpel-icon-right">https://code.google.com/p/msysgit/downloads/list?can=3<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 教學(1) : Git 的基本使用 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 教學(2)：Git Branch 的操作與基本工作流程 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/01/21/how-to-use-git-2-basic-usage-and-worflow/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://blog.gogojimmy.net/2012/01/21/how-to-use-git-2-basic-usage-and-worflow/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 情境劇 @ 好麻煩部落格<a rel="noreferrer noopener nofollow external" href="http://blog.gogojimmy.net/2012/02/29/git-scenario/" target="_blank" data-wpel-link="external" class="wpel-icon-right">http://blog.gogojimmy.net/2012/02/29/git-scenario/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li></ol>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/" data-wpel-link="internal">Git GUI &#8211; (1) TortoiseGit, msysgit 安裝</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>[參考文章] 使用 Git 做為網站開發版本控管工具</title>
		<link>https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/</link>
					<comments>https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Wed, 02 Jan 2013 09:20:24 +0000</pubDate>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[workflow]]></category>
		<guid isPermaLink="false">http://wazai.net/?p=2626</guid>

					<description><![CDATA[<p>小蛙最近在找一個 website 開發上的解決方案，發現下面這篇文章可以符合小蛙的要求，本文主用小蛙自己的理解&#8221;記錄&#8221;下來。【A web-focused Git workflo&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/" data-wpel-link="internal">[參考文章] 使用 Git 做為網站開發版本控管工具</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>小蛙最近在找一個 website 開發上的解決方案，發現下面這篇文章可以符合小蛙的要求，本文主用小蛙自己的理解&#8221;記錄&#8221;下來。<strong><a rel="noreferrer noopener nofollow external" href="http://joemaller.com/990/a-web-focused-git-workflow/" target="_blank" data-wpel-link="external" class="wpel-icon-right">【A web-focused Git workflow @ joe maller.com&nbsp;】<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong></p>



<span id="more-2626"></span>



<p>使用 <a rel="noreferrer noopener nofollow external" href="http://zh.wikipedia.org/wiki/Git" target="_blank" data-wpel-link="external" class="wpel-icon-right">Git<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 做為版本控管非常好用，網路上有很多 Git 教學文：<br><strong><a rel="noreferrer noopener nofollow external" href="http://ihower.tw/blog/archives/5391/" target="_blank" data-wpel-link="external" class="wpel-icon-right">【Git and Github 演講投影片(2011) @ ihower { blogging }】<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong><br><strong><a rel="noreferrer noopener nofollow external" href="http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/" target="_blank" data-wpel-link="external" class="wpel-icon-right">【Git 教學(1) : Git 的基本使用 @ 好麻煩部落格】<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong><br><strong><a rel="noreferrer noopener nofollow external" href="http://blog.longwin.com.tw/2009/05/git-learn-initial-command-2009/" target="_blank" data-wpel-link="external" class="wpel-icon-right">【Git 初學筆記 &#8211; 指令操作教學 @ Tsung&#8217;s Blog】<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong><br></p>



<p>這篇文章參考自<strong><a rel="noreferrer noopener nofollow external" href="http://joemaller.com/990/a-web-focused-git-workflow/" target="_blank" data-wpel-link="external" class="wpel-icon-right">【A web-focused Git workflow @ joe maller.com&nbsp;】<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong>，以下文章指令輸入的部份源自於原始網頁，說明的部分是小蛙破英文翻過來的(只挑部份，沒有逐字翻)，連結到原始作者網頁可看到更多資訊。 </p>



<p>這邊原作者把架構拉開分成 3 種身份(點回作者網站可以看到架構圖)：<strong>Clones(副本)</strong>、<strong>Hub(匯整)</strong>、<strong>Prime(網站)</strong>。 </p>



<p>大致上的流程為：<strong>所有開發者從 Hub clone 一份下來開發，最後 push 回 Hub，再由 Hub 中的 hook 進入 Prime 的目錄下執行 pull，當 Prime 有 commit 動作時，也透過 hook 將變動 push 到 Hub 以維持兩個 repository 的一致性。</strong></p>



<p><strong>Hub</strong>: bare repository，其他開發者只能從這邊 clone 資料。</p>



<p><strong>Prime</strong>: standard repository，網站的目錄。 </p>



<p>安裝並設定 Git </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">git config --global user.name "Joe, working on the server"</pre>



<p>在網站目錄下初始化一個新的 Git repository (Prime) </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">cd ~/www
git init
git add .
git commit -m"initial import of pre-existing web files"</pre>



<p>在網站目錄之外的地方建立一個 bare repository (Hub) </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">cd; mkdir site_hub.git; cd site_hub.git
git --bare init
Initialized empty Git repository in /home/joe/site_hub.git</pre>



<p>從 Prime 目錄下，把 Hub 加入到 remote 中，並且把 Prime 上的 master push 到 Hub 上 </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">cd ~/www
git remote add hub ~/site_hub.git
git remote show hub
* remote hub
  URL: /home/joe/site_hub.git
git push hub master</pre>



<p>為了讓 hub 跟 prime 緊密連接在一起，且不影響到工作目錄結構，這邊作者在 Hub repository 上設定 post-update (<a rel="noreferrer noopener nofollow external" href="http://gitbook.liuhui998.com/5_8.html" target="_blank" data-wpel-link="external" class="wpel-icon-right">參考資料2<span class="wpel-icon wpel-image wpel-icon-6"></span></a>)，當 Hub 接收到更新(git push)時，便會切換到網站目錄(prime)下的 repository 執行 git pull 的動作 </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">#!/bin/sh
echo
echo "**** Pulling changes into Prime [Hub's post-update hook]"
echo
cd $HOME/www || exit
unset GIT_DIR
git pull hub master
exec git-update-server-info</pre>



<p>在 Prime repository 中加入 post-commit (<a rel="noreferrer noopener nofollow external" href="http://gitbook.liuhui998.com/5_8.html" target="_blank" data-wpel-link="external" class="wpel-icon-right">參考資料2<span class="wpel-icon wpel-image wpel-icon-6"></span></a>)，為了維持 hub 跟 prime 雙向一致，如果真的 Prime 被手動修改了，也可以立即將這個變動發送到 Hub 上，讓 Hub 知道這些變動，避免 conflict </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">#!/bin/sh
echo
echo "**** pushing changes to Hub [Prime's post-commit hook]"
echo
git push hub</pre>



<p>有一些情況下 Prime 跟 Hub 會發生不一致的情況，作者提到如果衝突發生時，最好的做法是先把目前發生問題的 Prime 的狀態 push 到 Hub 的 &#8220;fixme&#8221; 分支，如此一來其他的 clones 就可以把有問題的分支 pull 下來，處理完成後再 merge，以免因為 Git 的衝突標示使得網站無法正常運作 </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">git push hub master:refs/heads/fixme</pre>



<p>由於 Prime 的 .git 資料夾在網站的根目錄可能會有安全性的問題，使用 Apache 的話可以透過以下方式禁止 .git 被存取 </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code"># deny access to the top-level git repository:
RewriteEngine On
RewriteRule \.git - [F,L]</pre>



<p>如果看到以下錯誤，就把 export PATH=${PATH}:~/bin 加入到 Server 上的 .bashrc 中。 </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">git-receive-pack: command not found
fatal: The remote end hung up unexpectedly</pre>



<h2 class="para wp-block-heading">參考資料</h2>



<ol class="my-li bg-darkblue wp-block-list"><li>A web-focused Git workflow @ joe maller.com<br><a href="http://joemaller.com/990/a-web-focused-git-workflow/" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">http://joemaller.com/990/a-web-focused-git-workflow/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git Hooks @ Git Book 中文版<br><a href="http://gitbook.liuhui998.com/5_8.html" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">http://gitbook.liuhui998.com/5_8.html<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git @ 維基百科，自由的百科全書<br><a href="http://zh.wikipedia.org/wiki/Git" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">http://zh.wikipedia.org/wiki/Git<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git and Github 演講投影片(2011) @ ihower { blogging }<br><a href="http://ihower.tw/blog/archives/5391/" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">http://ihower.tw/blog/archives/5391/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 教學(1) : Git 的基本使用 @ 好麻煩部落格<br><a href="http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li><li>Git 初學筆記 &#8211; 指令操作教學 @ Tsung&#8217;s Blog<br><a href="http://blog.longwin.com.tw/2009/05/git-learn-initial-command-2009/" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">http://blog.longwin.com.tw/2009/05/git-learn-initial-command-2009/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li></ol>



<p><strong>Git 系列文章：</strong></p>



<ul class="my-li bg-darkblue wp-block-list"><li><a href="https://noter.tw/2563/git-gui-1-tortoisegit-msysgit-%e5%ae%89%e8%a3%9d/" data-wpel-link="internal">Git GUI – (1) TortoiseGit, msysgit 安裝</a></li><li><a href="https://noter.tw/2569/git-gui-2-%e8%a8%ad%e5%ae%9a%e3%80%81clone%e3%80%81add%e3%80%81modify/" data-wpel-link="internal">Git GUI – (2) 設定、Clone、Add、Modify</a></li><li><a href="https://noter.tw/2734/git-gui-3-branch%e3%80%81conflict%e3%80%81merge/" data-wpel-link="internal">Git GUI – (3) branch、conflict、merge</a></li><li><a href="https://noter.tw/2737/git-gui-4-fetch%e3%80%81merge%e3%80%81pull%e3%80%81%e8%a7%a3%e6%b1%ba%e8%a1%9d%e7%aa%81%e6%83%85%e6%b3%81conflict/" data-wpel-link="internal">Git GUI – (4) fetch、merge、pull、解決衝突情況(conflict)</a></li><li><a href="https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/" data-wpel-link="internal">[參考文章] 使用 Git 做為網站開發版本控管工具</a></li></ul>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/" data-wpel-link="internal">[參考文章] 使用 Git 做為網站開發版本控管工具</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/2626/%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0-%e4%bd%bf%e7%94%a8-git-%e5%81%9a%e7%82%ba%e7%b6%b2%e7%ab%99%e9%96%8b%e7%99%bc%e7%89%88%e6%9c%ac%e6%8e%a7%e7%ae%a1%e5%b7%a5%e5%85%b7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
