<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                Git是現在最流行的版本管理工具, 其實學習的成本挺高的, 很多的入門的教程講的都非常的坑, 比如`盡量用的rebase代替pull`, 當時我在想, 你說的我都懂, 但是具體應該怎么做呢, 我看了好久終于搞懂了, 我希望的教程都把看的人當sb一樣來看, 該寫的命令, 一句不落, 而不是一筆帶過, 本文大概分為以下幾部分 # Git軟件下載地址 ## Git 這是git的核心工具 官網: git-scm.com 下載: 在官網下載, 若官網不能訪問, [點擊這里][1] ## TortoiseGit 這是git的輔助工具 官網: tortoisegit.org 下載: windows: 在官網下載 ## SourceTree 也是git的輔助工具, 和TortoiseGit二選一 官網: www.sourcetreeapp.com # Git在項目中的流程 一般來說都是項目管理人員`新建倉庫`(一般都會`新建兩個保護分支` 主分支*master*和開發分支*develop*, 既然是保護分支對項目的其他人員都是只讀的, 甚至是不可見的) 然后`推送到遠程倉庫`, 項目的其他人員, 從`遠程倉庫clone`, 項目參與人員根據任務的編號`建立任務分支`(任務分支一般都是以*develop*分支為基礎建立, 我們公司是以'#'+任務編號, 來確定任務分支名稱, 如40號任務, 任務分支名稱就為"*#40*"), 任務做好測試之后, 把分支推送到項目倉庫, 項目管理人員就把`任務分支合并`到*develop*分支進行整合測試, 確定沒有問題之后合并到*master*分支, 生產環境直接拉取*master*分支就行了 當然還有其他的項目人員肯定要和遠程倉庫同步了, 就是`重新拉取遠程倉庫`的內容, 以develop保證內容最新, 減少`沖突` # Git常用的操作 上面的項目流程中,特殊標記的就是常用的操作 我工作中基本上就只用到這些, 這些還是比較熟練的, 上面已經說明了使用的場景需求 遠程倉庫以osc(git.oschina.net/)為遠程倉庫 ## 新建一個倉庫 在osc上面新建一個倉庫 ![圖片描述][2] 右鍵 > `git bash` ``` // 自己在本地新建倉庫 git init // 新建項目的說明文件 echo "this is a demo" >> README.md // 把說明文件添加并提交 git add README.md git commit -m "first commit" // 新建master,develop分支 git checkout -b master git checkout -b develop // 添加遠程的倉庫 git remote add origin https://git.oschina.net/xsu/demo.git // 推送分支到遠程, 會彈出驗證框讓你輸入帳號和密碼 git push origin master git push origin develop ``` ![圖片描述][3] 項目開發人員: 從遠程倉庫克隆, 再操作 ``` // 克隆, 需要輸入有權限的帳號和密碼 git clone https://git.oschina.net/xsu/demo.git // 這步是查看clone下來的分支的, 可以看到包含剛才新建的master和develop分支 $ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/develop remotes/origin/master // 新建任務是以origin/develop為基準, 命令會新建并切換到任務(#40) git checkout origin/develop -b "#40" // 查看本地的分支, 當前分支是新建的分支 $ git branch * #40 master // 就在任務分支上作業 // 添加修改的文件 git add <filename> / git add * // 提交修改, 提交是提交到本地 git commit -m "你的注釋" // 然后推送到遠程 $ git push origin "#40" Total 0 (delta 0), reused 0 (delta 0) To https://git.oschina.net/xsu/demo.git * [new branch] #40 -> #40 ``` 項目管理人員: 合并刪除剛才推送上來的分支 ``` //合并: rebase和merge都可以完成合并, 區別請參考progit, 合并的時候推薦不推薦用命令行, 使用gui工具更方便 git checkout develop git rebase/merge origin/#40 git push origin develop // 刪除, 這語法可能非常扯, 這tmd竟然是刪除 $ git push origin :#40 To https://git.oschina.net/xsu/demo.git - [deleted] #40 ``` 項目開發人員: 從遠程更新 ``` // 遠程把作業分支合并到develop分支之后, 本地需要更新 $ git fetch -p origin From https://git.oschina.net/xsu/demo x [deleted] (none) -> origin/#40 // 手動刪除自己本地的分支 git branch -d "#40" ``` 然后又是新建任務分支, 推送, 合并, 項目就這樣推進了 項目管理人員和項目開發都可以是同一個人, 上面的步驟就少了更新的步驟 # Git常用的概念 參考[progit](http://git.oschina.net/progit/) # 使用密鑰代替密碼 上面的操作中是需要輸入帳號密碼的, 這種方式非常的不方便, 其實可以用密鑰代替 ## osc端 打開git bash ``` cd ~/.ssh ssh-keygen -t rsa -C "999999@163.com" ``` ![圖片描述][4] 在紅框處輸入你想取的名稱, 我輸入`osc`, 然后在我的電腦的地址欄中輸入 `%userprofile%/.ssh` 是不是看到了`osc`和`osc.pub`兩個文件 打開`osc.pub`, 全選,復制到`個人資料`這里 ![圖片描述][5] ## pc端 新建文件,取名為config, 內容如下 ``` # oschina Host oschina HostName git.oschina.net User jaime IdentityFile ~/.ssh/osc ``` ## 測試 我那里的hostnam是oschine, 以后所有用到`git.oschina.net`的地方都改為`oschina`. https改為git 成功就是 ``` $ ssh -T git@oschina Welcome to Git@OSC, xsu! ``` 失敗如下 ``` $ ssh -T git@oschina Permission denied. ``` ``` // 添加遠程的倉庫 git remote add origin https://git.oschina.net:xsu/demo.git 修改為 git remote add origin git@oschina:xsu/demo.git ``` 之前是clone的倉庫改為 ``` git clone git@oschina:xsu/demo.git ``` 如果已經克隆, 修改遠程倉庫地址為 ``` git remote remove origin git remote add origin git@oschina:xsu/demo.git ``` 當然這些的前提是 你要有這個倉庫的權限 如果TortoiseGit想使用密鑰的話, 必須右鍵 > TortoiseGit > settings ![圖片描述][6] ssh.exe的地址為 `git的安裝目錄/usr/bin` # 工作中常用的命令 ``` git init git add <file> git comit -m "<msggggg>" git status git log從最近到最遠的提交日志, git log --pretty=oneline 顯示到一行 git reset版本回退 git reset --hard HEAD^ 回退到上一個版本,幾個^回退到上幾個版本 git reset --hard 80fed6a 回退到hash開頭為 80fed6a 的那個版本, 版本號沒必要寫全,前幾位就可以 git diff查看修改的內容, 使用TortoiseGit來查看, 不要使用這個命令查看 git push origin <branch_name> git fetch 獲取remote內容 git fetch -p origin 獲取的時候刪除已經刪除的分支 git rebase/merge <branch> 把<branch>合并到當前分支 git branch <branch> 新建分支 git checkout <branch> 切換到分支 git checkout -b <branch> 新建并且切換到分支, 可以代替上面2條命令 ``` 本文不是git的完全教程, git的基礎一定要看啊 [1]: https://git-scm.com [2]: https://segmentfault.com/img/bVEzbq [3]: https://segmentfault.com/img/bVEzbt [4]: https://segmentfault.com/img/bVEziY [5]: https://segmentfault.com/img/bVEzjB [6]: https://segmentfault.com/img/bVEzlX
                  <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>

                              哎呀哎呀视频在线观看