<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >http://www.jianshu.com/p/12b0099d4625 http://alfred-sun.github.io/blog/2015/01/10/jekyll-liquid-syntax-documentation/ [手把手教你使用Git](https://my.oschina.net/gsbhz/blog/337719) [TOC] # Git筆記 --- ### 理解Git與GitHub ![](https://box.kancloud.cn/face9febd82b90da675f93256cf22485_583x505.png) 1. git 是一個軟件 2. git 可以在 .git 文件夾里面維護你的歷史代碼 3. 指定了 remote 鏈接和用戶信息(git 靠用戶名+郵箱識別用戶)之后,git 可以幫你將提交過的代碼 push 到遠程的倉庫(任意提供了 git 托管服務的服務器上都可以,包括你自己建一個或者 GitHub/BitBucket 等網站提供的服務器)或者將遠程倉庫的代碼 fetch 到本地。 相當于本地、公司服務器、Github網站服務器都裝Git做版本控制,只不過Github的服務器強大些,對全球用戶托管的項目用Git做版本控制! 正是由于Github用Git做版本控制,所以可以輕松的記錄項目的變遷史,然后有了下圖: ![](https://box.kancloud.cn/e4788a7f4ed1494dfcb314eafb0c3be1_509x286.png) 你可以在瀏覽器里面先試試Git的命令行,盡情[Try Git](https://try.github.io/)吧 ### 1. 工作區(Working Directory)和版本庫(Repository) ![](https://box.kancloud.cn/2016-06-22_576a0c31205ab.png) **說明:** * 工作區就是創建倉庫的文件夾如(learngit文件夾就是一個工作區) * 版本庫就是工作區的隱藏目錄`.git`,版本庫中有暫存區(stage/index)和分支(master) * git add 實際是把文件添加到暫存區,`git commit` 把暫存區的內容提交到當前分支 ### 2.創建版本庫 1. 創建git倉庫文件夾,名為:`learngit` $ mkdir learngit 2. 進入leadngit文件夾 $ cd learngit 3. 初始化git倉庫 $ git init ### 3. 添加文件 1. 在`leangit`下添加一個`readme.txt`文件,并編輯一些內容 2. 添加到倉庫暫存區()在暫存區 文件會變綠 $ git add readme.txt 3. 提交readme.txt文件到當前分支, -m "提交說明"(只有進行 git add 后 go commit 命令才有效) $ git commit -m "add readme.txt" ### 4. 修改文件 #### 4.1 當文件在工作區時 1. 查看readme.txt文件內容 $ cat readme.txt 2. 修改readme.txt文件內容 3. 查看倉庫狀態 $ git status 4. 添加到倉庫暫存區,并提交到分支 $ git add readme.txt $ git commit -m "modify readme.txt" #### 4.2 當文件在暫存區時 1. 修改文件內容 2. 添加到倉庫暫存區 $ git add readme.txt 3. 提交到分支 $ git commit -m "modify readme.txt at the stage" ### 5. 撤銷修改文件(未提交到分支) #### 5.1 當文件在工作區時 1. 執行撤銷命令 $ git checkout -- readme.txt #### 5.2 當文件在暫存區時 1. 令文件回到工作區 $ git reset HEAD readme.txt 2. 執行撤銷命令 $ git checkout -- readme.txt ### 6. 版本控制(無限次后悔) 說明:在Git中,`HEAD`表示當前版本,`HEAD^`表示上一版本 `HEAD^^`表示上上一個版本 1. 查看提交日志輸出(完整版) $ git log 2. 查看提交日志輸出(精簡版) $ git log --pretty=noline 3. 回到上一版本 $ git reset --hard HEAD^ 4. 回到指定版本(hard 后面添加版本號) $ git reset --hard ea34578 5. 查看命令歷史 $ git reflog ### 7. 遠程倉庫(github) #### 7.1 添加到遠程庫 1. 在github上創建一個名為`learngit`的空倉庫 2. 在本地`learngit`倉庫下運行命令 $ git remote add origin git@github.com:iphone5solo/learngit.git 3. 把本地內容推送到github遠程庫上(第一次push 參數帶 `-u` 關聯遠程倉庫) $ git push -u origin master 注意:如果在git push -u origin master時出現以下錯誤,證明電腦沒有修改遠程倉庫的公鑰, Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 解決方法: 1. 在github上點擊`Edit profile` --> `SSH and GPG keys` --> `new SSH key` 添加SHH公鑰 2. 打開`id_rsa.pub`文件(C:/Users/Administrator/.ssh/id.rsa.pub) 3. 將`id_rsa.pub`文件內容拷貝到key就可以了,title隨便填。 #### 7.2 從遠程庫克隆 1. 在github上創建一個名為`clonegit`的倉庫 2. 使用命令克隆倉庫 $ git clone git@github.com:iphone5solo/clonegit #### 7.3 從遠程倉庫更新本地倉庫(已關聯) $ git pull origin master ### 8. 分支管理 **圖文說明:** `master`分支是一條線,git用`master`指向最新的提交,在用`HEAD`指向`master`,以此才確定當前分支,和提交點。 ![](https://box.kancloud.cn/2016-06-22_576a0c3141619.png) **1. 創建分支** 當我們創建新的分支,例如`newBranch`,git就會新建一個指針`newBranch`,指向`master`相同的提交,再把`HEAD`指向`newBranch`,就表示當前分支在`newBrach`上 ![](https://box.kancloud.cn/2016-06-22_576a0c315b85c.png) **2. 新分支的修改和提交** 現在對工作區的修改和提交就是針對`newBranch`分支了,比如新提交一次后,`newBranch`指針就向前移動一步,指向最新提交,而`master`指針指向不變。 ![](https://box.kancloud.cn/2016-06-22_576a0c3171f0d.png) **3. 分支的合并** 把`newBranch`合并到`master`上,直接把`master`指向`newBranch`的當前提交,就完成了合并。 ![](https://box.kancloud.cn/2016-06-22_576a0c3188245.png) **4. 合并完成刪除分支** 刪除分支`newBranch`,就剩下一個`master`分支 ![](https://box.kancloud.cn/2016-06-22_576a0c31a24b1.png) **5. 查看分支合并圖解** ![](https://box.kancloud.cn/2016-06-22_576a0c31b653c.png) **關于分支的主要命令如下** * 查看分支 $ git branch * 創建`newBranch`分支 $ git branch newBranch * 切換`HEAD`指向`newBranch`分支 $ git checkout newBranch * 創建+切換分支 $ git checkout -b newBranck * 合并某分支到當前分支 $ git merge newBranch * 普通刪除`newBranch`分支 $ git branch -d newBranch * 強行刪除`newBranch`分支 $ git branch -D newBranch * 查看分支合并狀況 $ git log --graph --pretty=oneline --abbrev-commit ### 9. 藏匿當前未提交的分支 如: 當前在修改自己的分支`dev`,突然項目經理要求修復一個bug-07 解決方法: 1. 藏匿當前`dev`分支的工作狀態 $ git stash 2. 新建一個`bug-07`分支 $ git branch -b bug-07 3. 修復bug并提交,合并`bug-07`到`master`分支 $ git commit -m "fix the bug-07" $ git checkout master $ git merge --no-ff -m "merge bug-07" bug-07 4. 刪除`bug-07`分支 $ git branch -d bug-07 5. 查看當前`stash` $ git stash list 6. 恢復`dev`分支的工作狀態,并刪除stash內容 $ git stash pop ### 10. 多人協作 * 查看遠程庫信息 $ git remote * 詳細查看遠程信息 $ git remote -v * 推送分支到遠程庫 $ git remote origin master * 抓取遠程分支 $ git pull origin master ### 11. 標簽管理 * 創建一個標簽,默認為`HEAD`當前分支添加標簽 $ git tag v1.0 * 為版本號為`e8b8ef6`添加`v2.0`標簽 $ git tag v2.0 e8b8ef6 * 為版本號為`6cb5a9e`添加帶有說明的標簽,`-a`指定標簽名,`-m`指定說明文字 $ git tag -a v3.0 -m "version 0.2 released" 6cb5a9e * 根據標簽查看指定分支 $ git show v0.2 * 查看所有標簽 $ git tag * 刪除`v1.0`標簽 $ git tag -d v1.0 * 把`v0.9`標簽推送到遠程 $ git push origin v0.9 * 推送所有尚未推送到遠程的本地標簽 $ git push origin --tags * 刪除遠程標簽, 先刪除本地標簽,再刪除遠程標簽 $ git tag -d v0.9 $ git push origin :refs/tags/v0.9
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看