<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之旅 廣告
                本人是按自己理解寫的,隨時更新。 # 名詞解釋 1.origin #遠程倉庫主機別名,Git 默認使用這個名字來標識你所克隆的原始倉庫所在主機 2.master #默認初始分支,如果使用git clone 獲取項目代碼 會自動生成origin/master分支 3.fetch #拉取遠程分支最新提交到本地 4.merge #將一個分支代碼合并到另一個分支中 5.push #推送本地分支到遠程 6.branch #分支:操作分支 7.checkout #檢出:操作將分支最新提交覆蓋到本地 8.reset #重置:操作將本地版本的代碼覆蓋到本地 9.clone #克隆:操作將倉庫主機源代碼復制到本地 10.status #狀態:查看當前的本地工作區和暫存區以及本地倉庫的狀態 11.add #添加:操作各種添加 最常用的是將代碼添加到暫存區 12.remote #遠程:操作遠程倉庫主機 13.commit #提交:操作提交代碼更新倉庫代碼版本 14.stash #備份:操作將更改的代碼存放至臨時區域,常用于拉取或推送代碼有沖突時使用 15.\[.git\]工作目錄下的.git目錄就是本地倉庫,單獨拷貝出去在該目錄同級可以使用檢出命令獲取工作目錄 # 幾種狀態 1.工作區無任何改動,等于git checkout【nothing to commit, working tree clean】 2.工作區有改動,但未暫存【Changes not staged for commit】 3.暫存區待提交【Changes to be committed】 4.本地分支版本超前遠端分支,待推送【Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits)】 # 安裝 ## Linux【以centos 為例】 ~~~ >git --version #檢查是否安裝,查看git版本,如果有返回則已安裝。本例返回=》git version 2.13.1 >yum install -y git #安裝git,安裝完仍然用上面命令檢查 ~~~ ## Windows【以windows10為例】 > 桌面空白處右擊鼠標,菜單列表有Git Bash Here 或Git GUI Here.只要在安裝.exe文件過程中一路下一步,沒有特殊設置的情況下,通常代表已安裝。如果沒有,取官網下載安裝包,雙擊.exe文件一路下一步即可 # GUI推薦 【如果是對命令行不敏感,需要迅速進入開發可以使用用戶界面工具,以下為使用過的推薦】 > sourcetree:沒有什么參考,已經是界面了,隨便摸索都可以使用了。 > > tortoiseGit:QQ管家可以直接下載,跟svn的絕大部分都相似。唯一區別是git會多一個push到remote的過程,commit只是提交到本地倉庫 # 命令行操作 ## 開發流程:假設git客戶端已安裝完畢,都在同一個分支進行開發,比如說dev > 設置git用戶的基本信息,用來在git log上區分代碼是誰提交的 主要是用戶名和郵箱.這個全局設置會在當前電腦的任何的git提交中應用 ~~~ #配置 >git config --global user.name <你的姓名> >git config --global user.email <你的郵箱> #查看自己的配置 >git config --global -l 查看全局所有配置 >git config --global user.name 查看全局具體配置 >git config --global user.email 查看全局具體配置 >git config -l 查看本地所有配置 ~~~ > 首先需要獲取開發代碼 ~~~ #從倉庫拉取 >git clone 項目地址 #如果是通過http協議,這種直接寫地址.首次提交會需要輸入密碼,可以選擇保存. #如果是通過ssh協議,這種需要先在本地生成秘鑰對并提交公鑰給倉庫管理者進行添加認證和授權 ~~~ > 切換分支|生成自己本地分支 ~~~ #切換到dev分支 假設存在 >git checkout dev #生成本地個人分支 >git branch 54skyer ~~~ > 定期將遠端dev的更新合并到私人分支【要養成每天早晨來第一件事:拉取最新代碼;晚上離開前:推送最新代碼】 ~~~ >git fetch >git merge origin/dev #或者先切換到本地dev拉取到遠端跟蹤的dev最新的版本,然后切回本地私人,將本地dev合并到本地私人 >git checkout dev >git pull >git checkout 54skyer >git merge dev ~~~ > 提交代碼的素質三連 ~~~ >git status #列出本地文件,并顯示其可操作狀態。 >git add file_name1 file_name2 ...#1.將更改加入暫存區,多個文件可以用空格隔開,“ .” 來替代所有改變 #或 >git add . #1.添加所有文件到暫存區 >git commit -m "注釋" #2.將暫存區所有文件提交到本地版本庫并寫注釋【當注釋部分沒有空格情況下可以不加引號】 >git push #3.同步提交到遠端,首次推送 沒有默認的遠端跟蹤分支,命令行會提示[我的例子]: #git push --set-upstream origin 54skyer 在遠端創建一個同名的分支 并跟本地建立跟蹤關系 #同時將本地分支代碼整個push上去,后續git push會自動跟蹤 >git status #此時發現本地分支工作區是干凈的 ~~~ > 每日開發流程 > 早晨fetch遠程dev最新版本到本地 git fetch origin/dev > 正常工作在私人分支進行提交代碼的素質三連,因為是私人分支,基本不會沖突. > 測試需要或者晚上離開公司時,將私人開發版本合并至dev并推送 > git checkout dev > git pull #先拉取其他成員在dev的提交.更新到本地 > git merge 54skyer #將私人分支更新合并到dev # 理想情況沒有沖突,直接推送到遠端dev > git push # 有沖突,沖突會直接在 ~~~ >git add file_name1 file_name2 ... #將文件加入暫存區,多個文件用空格隔開 >git add . #加入所有 >git reset file_name1 file_name2 ... #將文件從暫存區撤回到工作區,多個文件用空格隔開 >git reset . #撤回所有 ~~~ > 當同事已同步到遠端的版本中,有文件與當前自己未提交的文件沖突,則git pull 會失敗 ~~~ >git stash ... #將所有文件更改加入備份區。這時工作區將會變成checkout的狀態。 >git pull #將同事的更新同步到本地 >git stash apply #將備份區文件恢復到本地,這時如果自己備份的更改文件與同事沖突,會自動將沖突部分用類似于svn的形式在標注出來。 > #與同事確認解決完沖突后再素質三連即可【解決完的沖突文件會在git add file_path后被標記為已解決。解決完沖突最好立刻先把沖突文件進行一個版本的提交】 ~~~ > 當同事已同步到遠端的版本中,自己走素質三連前沒有先git pull,將更改提交到本地后,如果與同事沖突,這時push是會失敗的【這時會比前一種更麻煩,應該盡量避免,最好是養成提交前,先pull的習慣,即使沖突也可以用git stash解決】 ~~~ >git log ... #將本地版本庫提交的記錄列出來,其中包含了版本ID,會用在后續命令的參數。退出log直接按q即可,表示quit。 #方案一:直接回退到上個版本的代碼,不保留工作區代碼的改變。 >git reset --hard 版本ID #將工作區回退到某個版本。相當于完全撤銷了當次該版本后的改變。 #使用該命令前,如果工作區代碼還有用,最好先找個臨時文件夾備份下代碼,不過這樣比較low了。 #方案二【推薦】:直接回退到上個版本的代碼,但保留工作區代碼的改變。 >git reset --soft 版本ID #相當于只是撤銷了本地commit 但代碼還在 再使用git reset file_name 后可以重新繼續編碼后再提交 >git reset file_name #這樣相當于撤銷了本地commit 接著又撤銷了add 直接將更改還原到了工作區未提交狀態 #方案三【推薦】 >git reset --mixed 版本ID #相當于方案二的命令合并 ~~~ > 當多人協作開發時,都在master分支開發會容易出問題,因為發布系統可能是同步的master代碼.正規開發應該至少是三條分支.master\[主分支:用來同步線上\]->dev\[開發分支:用來同步測試環境\]->person\[本地分支:用來開發模塊或者修復\] ~~~ #查看當前所有分支[本地和遠程] >git branch -a ~~~ > 版本bug修復,開啟新分支 ~~~ >git checkout 目標分支名稱 >git checkout -b 新分支名稱 #此操作會從當前分支檢出副本新分支 ># 開發或修復提交代碼流程 >git push #會提示沒有追蹤的遠程分支,會提示 git push --set-upstream origin 新分支名稱 >git push --set-upstream origin 新分支名稱 >git push #完成,特殊分支目的完成后可刪除 >git push origin --delete 新分支名稱 # 這是刪除遠程新分支 , 可先用git branch -a 查看所有分支名稱列表 >git branch -d 新分支名稱 #這是刪除本地新分支 ~~~
                  <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>

                              哎呀哎呀视频在线观看