日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git使用,Git的skil-map

發(fā)布時(shí)間:2025/7/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git使用,Git的skil-map 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

1. 檢出、克隆庫: git clone git://git.openwrt.org/openwrt.git2. git查看某個(gè)文件的修改歷史 git log --pretty=oneline 文件名 列出文件的所有改動(dòng)歷史,注意,這里著眼于具體的一個(gè)文件,而不是git庫,如果是庫,那改動(dòng)可多了去了~3. 查看具體的某次的改動(dòng)的修改 git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e 每一行最前面的那一長(zhǎng)串?dāng)?shù)字就是每次提交形成的哈希值Git常用命令 查看、添加、提交、刪除、找回,重置修改文件 git help <command> # 顯示command的help git show # 顯示某次提交的內(nèi)容 git show $id git co -- <file> # 拋棄工作區(qū)修改 git co . # 拋棄工作區(qū)修改 git add <file> # 將工作文件修改提交到本地暫存區(qū) git add . # 將所有修改過的工作文件提交暫存區(qū) git rm <file> # 從版本庫中刪除文件 git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件 git reset <file> # 從暫存區(qū)恢復(fù)到工作文件 git reset -- . # 從暫存區(qū)恢復(fù)到工作文件 git reset --hard # 恢復(fù)最近一次提交過的狀態(tài),即放棄上次提交后的所有本次修改 git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合并在一起做                                    git ci -am "some comments" git ci --amend # 修改最后一次提交記錄 git revert <$id> # 恢復(fù)某次提交的狀態(tài),恢復(fù)動(dòng)作本身也創(chuàng)建次提交對(duì)象 git revert HEAD # 恢復(fù)最后一次提交的狀態(tài)查看文件diff git diff <file> # 比較當(dāng)前文件和暫存區(qū)文件差異 git diff git diff <$id1> <$id2> # 比較兩次提交之間的差異 git diff <branch1>..<branch2> # 在兩個(gè)分支之間比較 git diff --staged # 比較暫存區(qū)和版本庫差異 git diff --cached # 比較暫存區(qū)和版本庫差異 git diff --stat # 僅僅比較統(tǒng)計(jì)信息查看提交記錄 git log git log <file> # 查看該文件每次提交記錄 git log -p <file> # 查看每次詳細(xì)修改內(nèi)容的diff git log -p -2 # 查看最近兩次詳細(xì)修改內(nèi)容的diff git log --stat #查看提交統(tǒng)計(jì)信息tig Mac上可以使用tig代替diff和log,brew install tigGit 本地分支管理 查看、切換、創(chuàng)建和刪除分支 git br -r # 查看遠(yuǎn)程分支 git br <new_branch> # 創(chuàng)建新的分支 git br -v # 查看各個(gè)分支最后提交信息 git br --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支 git br --no-merged # 查看尚未被合并到當(dāng)前分支的分支 git co <branch> # 切換到某個(gè)分支 git co -b <new_branch> # 創(chuàng)建新的分支,并且切換過去 git co -b <new_branch> <branch> # 基于branch創(chuàng)建新的new_branch git co $id # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其他分支會(huì)自動(dòng)刪除 git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,創(chuàng)建成一個(gè)分支 git br -d <branch> # 刪除某個(gè)分支 git br -D <branch> # 強(qiáng)制刪除某個(gè)分支 (未被合并的分支被刪除的時(shí)候需要強(qiáng)制)分支合并和rebasegit merge <branch> # 將branch分支合并到當(dāng)前分支 git merge origin/master --no-ff # 不要Fast-Foward合并,這樣可以生成merge提交 git rebase master <branch> # 將master rebase到branch,相當(dāng)于: git co <branch> && git rebase master && git co master && git merge <branch>Git補(bǔ)丁管理(方便在多臺(tái)機(jī)器上開發(fā)同步時(shí)用) git diff > ../sync.patch # 生成補(bǔ)丁 git apply ../sync.patch # 打補(bǔ)丁 git apply --check ../sync.patch #測(cè)試補(bǔ)丁能否成功Git暫存管理 git stash # 暫存 git stash list # 列所有stash git stash apply # 恢復(fù)暫存的內(nèi)容 git stash drop # 刪除暫存區(qū)Git遠(yuǎn)程分支管理 git pull # 抓取遠(yuǎn)程倉庫所有分支更新并合并到本地 git pull --no-ff # 抓取遠(yuǎn)程倉庫所有分支更新并合并到本地,不要快進(jìn)合并 git fetch origin # 抓取遠(yuǎn)程倉庫更新 git merge origin/master # 將遠(yuǎn)程主分支合并到本地當(dāng)前分支 git co --track origin/branch # 跟蹤某個(gè)遠(yuǎn)程分支創(chuàng)建相應(yīng)的本地分支 git co -b <local_branch> origin/<remote_branch> # 基于遠(yuǎn)程分支創(chuàng)建本地分支,功能同上 git push # push所有分支 git push origin master # 將本地主分支推到遠(yuǎn)程主分支 git push -u origin master # 將本地主分支推到遠(yuǎn)程(如無遠(yuǎn)程主分支則創(chuàng)建,用于初始化遠(yuǎn)程倉庫) git push origin <local_branch> # 創(chuàng)建遠(yuǎn)程分支, origin是遠(yuǎn)程倉庫名 git push origin <local_branch>:<remote_branch> # 創(chuàng)建遠(yuǎn)程分支 git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然后再push刪除遠(yuǎn)程分支Git遠(yuǎn)程倉庫管理GitHub git remote -v # 查看遠(yuǎn)程服務(wù)器地址和倉庫名稱 git remote show origin # 查看遠(yuǎn)程服務(wù)器倉庫狀態(tài) git remote add origin git@ github:robbin/robbin_site.git # 添加遠(yuǎn)程倉庫地址 git remote set-url origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠(yuǎn)程倉庫地址(用于修改遠(yuǎn)程倉庫地址) git remote rm <repository> # 刪除遠(yuǎn)程倉庫創(chuàng)建遠(yuǎn)程倉庫 git clone --bare robbin_site robbin_site.git # 用帶版本的項(xiàng)目創(chuàng)建純版本倉庫 scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到服務(wù)器上 mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務(wù)器創(chuàng)建純倉庫 git remote add origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠(yuǎn)程倉庫地址 git push -u origin master # 客戶端首次提交 git push -u origin develop # 首次將本地develop分支提交到遠(yuǎn)程develop分支,并且track git remote set-head origin master # 設(shè)置遠(yuǎn)程倉庫的HEAD指向master分支也可以命令設(shè)置跟蹤遠(yuǎn)程庫和本地庫 git branch --set-upstream master origin/master git branch --set-upstream develop origin/develop其它: git搭建 windows搭建git:http://v.qq.com/page/v/k/s/v0115ak5aks.html windows中使用git:http://v.qq.com/page/u/8/i/u0115yt2q8i.html 在vs中使用svn:http://v.qq.com/cover/6/6hwkm72fnkmh6hi.html?vid=k0116vxw2dr svn搭建:http://v.qq.com/cover/6/6hwkm72fnkmh6hi.html?vid=k0116vxw2dr 下載: https://launchpadlibrarian.net/172450987/gcc-linaro-4.8-2014.04.tar.xz 首先 github上的項(xiàng)目是開源的,別人都可以看到,所以你懂的。。。。 說重點(diǎn): 1.創(chuàng)建一個(gè)新的repository: 先在github上創(chuàng)建并寫好相關(guān)名字,描述。 $cd ~/project //到project目錄 $git init //初始化 $git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具體文件) $git commit -m "add some function" //必須填寫更新日志( -m “更新日志”也可) $git remote add origin https://username@github.com:username/projectname.git //先創(chuàng)建github網(wǎng)站賬戶,增加到remote $git push -u origin master //push到github上2.更新項(xiàng)目(新加了文件): $cd ~/project $git add . //這樣可以自動(dòng)判斷新加了哪些文件,或者手動(dòng)加入文件名字 $git commit //提交到本地倉庫 $git push origin master //不是新創(chuàng)建的,不用再add 到remote上了3.更新項(xiàng)目(沒新加文件,只有刪除或者修改文件): $cd ~/project $git commit -a //記錄刪除或修改了哪些文件 $git push origin master //提交到github4.忽略一些文件,比如*.o等: $cd ~/project $vim .gitignore //把文件類型加入到.gitignore中,保存 然后就可以git add . 能自動(dòng)過濾這種文件5.clone代碼到本地: $git clone git@github.com:username/project.git 假如本地已經(jīng)存在了代碼,而倉庫里有更新,把更改的合并到本地的項(xiàng)目: $git fetch origin //獲取遠(yuǎn)程更新 $git merge origin/master //把更新的內(nèi)容合并到本地分支6.撤銷 $git reset7.刪除 $git rm * // 不是用rmgit rm –cached ooxx ,Git只刪除倉庫中的代碼,而保留本地代碼 //------------------------------常見錯(cuò)誤----------------------------------- 1.$ git remote add origin git@github.com:WadeLeng/hello-world.git 錯(cuò)誤提示:fatal: remote origin already exists. 解決辦法:$ git remote rm origin 然后在執(zhí)行:$ git remote add origin git@github.com:WadeLeng/hello-world.git 就不會(huì)報(bào)錯(cuò)誤了 2. $ git push origin master 錯(cuò)誤提示:error:failed to push som refs to 解決辦法:$ git pull origin master //先把遠(yuǎn)程服務(wù)器github上面的文件拉先來,再push 上去。

? 3.error:?The?requested?URL?returned?error:?403?Forbidden?while?accessing?https://github.com/wangz/future.git/info/refs ?解決方案:

vim .git/config

修改url?=?https://github.com/wangz/example.git ?

為:?url?=?https://wangz@github.com/wangz/example.git ?

再次git push,彈出框輸入密碼,即可提交

本人遇到的還有一個(gè)錯(cuò)誤就是,工程傳進(jìn)github 了可是里頭缺少文件, 解決方法 $git add . (注意一點(diǎn) 。 )表示添加所有文件,gitconfig配置文件Git有一個(gè)工具被稱為git config,它允許你獲得和設(shè)置配置變量;這些變量可以控制Git的外觀和操作的各個(gè)方面。這些變量可以被存儲(chǔ)在三個(gè)不同的位置: 1./etc/gitconfig 文件:包含了適用于系統(tǒng)所有用戶和所有庫的值。如果你傳遞參數(shù)選項(xiàng)’--system’ 給 git config,它將明確的讀和寫這個(gè)文件。 2.~/.gitconfig 文件 :具體到你的用戶。你可以通過傳遞--global 選項(xiàng)使Git 讀或?qū)戇@個(gè)特定的文件。3.位于git目錄的config文件 (也就是 .git/config) :無論你當(dāng)前在用的庫是什么,特定指向該單一的庫。每個(gè)級(jí)別重寫前一個(gè)級(jí)別的值。因此,在.git/config中的值覆蓋了在/etc/gitconfig中的同一個(gè)值。在Windows系統(tǒng)中,Git在$HOME目錄中查找.gitconfig文件(對(duì)大多數(shù)人來說,位于C:\Documents and Settings\$USER下)。它也會(huì)查找/etc/gitconfig,盡管它是相對(duì)于Msys 根目錄的。這可能是你在Windows中運(yùn)行安裝程序時(shí)決定安裝Git的任何地方。配置相關(guān)信息:

  2.1 當(dāng)你安裝Git后首先要做的事情是設(shè)置你的用戶名稱和e-mail地址。這是非常重要的,因?yàn)槊看蜧it提交都會(huì)使用該信息。它被永遠(yuǎn)的嵌入到了你的提交中:$ git config --global user.name "John Doe"$ git config --global user.email johndoe@example.com2.2 你的編輯器(Your Editor)現(xiàn)在,你的標(biāo)識(shí)已經(jīng)設(shè)置,你可以配置你的缺省文本編輯器,Git在需要你輸入一些消息時(shí)會(huì)使用該文本編輯器。缺省情況下,Git使用你的系統(tǒng)的缺省編輯器,這通常可能是vi 或者 vim。如果你想使用一個(gè)不同的文本編輯器,例如Emacs,你可以做如下操作:$ git config --global core.editor emacs
2.3 檢查你的設(shè)置(Checking Your Settings)如果你想檢查你的設(shè)置,你可以使用 git config --list 命令來列出Git可以在該處找到的所有的設(shè)置:$ git config --list你也可以查看Git認(rèn)為的一個(gè)特定的關(guān)鍵字目前的值,使用如下命令 git config {key}:$ git config user.name2.4 獲取幫助(Getting help)如果當(dāng)你在使用Git時(shí)需要幫助,有三種方法可以獲得任何git命令的手冊(cè)頁(manpage)幫助信息:$ git help <verb>$ git <verb> --help$ man git-<verb>例如,你可以運(yùn)行如下命令獲取對(duì)config命令的手冊(cè)頁幫助:$ git help config
Git
/Github使用方法小記 今天把人間網(wǎng)的桌面客戶端renjian-deck正式開源了,之前對(duì)javas-cript的了解其實(shí)非常的不夠的,所以這一次的代碼寫的也是亂七八糟重用性及其低下,雖然我無數(shù)次的想把代碼重新整理一下,不過還是糊里糊涂一時(shí)沖動(dòng)的在他們還是亂七八糟的時(shí)候開源了。因?yàn)橹笆腔趃it-hub上的一個(gè)開源項(xiàng)目,所以硬著頭皮也放到git-hub上,雖然沒有使用的經(jīng)驗(yàn),不過磨機(jī)磨機(jī)還是搞定了。 以下是具體步驟,就當(dāng)是自己做個(gè)筆記了,高手請(qǐng)繞道吧。 1、下載安裝桌面端git。 Win-dows請(qǐng)至:http://?code.?google.?com/?p/?msysgit/? 安裝的時(shí)候最好還是允許在shell嵌入git的命令,相對(duì)還是比較方便的。 OSX可以在xcode中安裝com-mand line tools,或者brew install git2、git的初始設(shè)置 git config --global user.name "Your Real Name" git config --global user.email you@email.address
3
、建立倉庫 在git bash里找到你的項(xiàng)目目錄。(或直接用shell右鍵里的git bash here) git init 這樣在你的項(xiàng)目目錄下就會(huì)有一個(gè).git的隱藏目錄(類似于.svn) 。4、初始化項(xiàng)目 git add . 留心后面的一個(gè) “.” , 這是添加所有文件的情況,如果愿意,你也可以添加特定的幾個(gè)文件,比如git add readme.?txt等等。 之后就可以做我們的first com-mit到倉庫里了。 git commit -m 'first commit' -m 參數(shù)以及后面的字串是添加說明。5、 注冊(cè)git-hub賬號(hào) 下面就是與git-hub有關(guān)的操作了。 首先到http://?github.?com/?%E6%B3%A8%E5%86%8C%E8%B4%A6%E5%8F%B7%E3%80%82%E6%B3%A8%E5%86%8C%E4%B9%8B%E5%90%8E%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%E8%BF%99%E6%A0%B7%E7%9A%84%E7%95%8C%E9%9D%A2%E3%80%82%E9%80%89%E6%8B%A9%E7%AC%AC%E4%B8%80%E9%A1%B9%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E9%A1%B9%E7%9B%AE%E3%80%82 表單需要填寫 Pro-ject Name(項(xiàng)目名稱) De-scrip-tion(描述) Homepage URL(主頁URL,一般就以項(xiàng)目名稱命名好了)6、創(chuàng)建SSH密匙 這步工作應(yīng)該是最麻煩的吧。回到桌面,打開git bash,輸入以下命令。1 ssh-keygen -C 'your@email.address' -t rsa 確認(rèn)使用默認(rèn)路徑,然后輸入兩次你要是用的密碼就行(一般直接敲幾個(gè)回車不使用密碼)。7、提交密匙
現(xiàn)在又要回到git-hub的頁面上,在右上方工具欄里找到Ac-count Set-tings。在這個(gè)頁面上有一個(gè)SSH Pub-lic Keys標(biāo)簽,選擇Add an-other pub-lic key。Title隨便取,Key是一段東西。 找到剛才創(chuàng)建密匙的那個(gè)目錄下(默認(rèn)是C:\Documents and Settings\你的windows用戶名.ssh,OSX是
~/.ssh)找到id_rsa.pub文件,把它打開可以看到一堆文字,拷貝下來黏貼到git-hub頁面key的空白處。然后Apply,就好了。 可以使用以下命令測(cè)試連接 ssh -v git@github.com 會(huì)要求輸入你剛才設(shè)置的密碼,如果成功的話可以看到這樣的ERROR(orz,起碼證明連接是成功了)1 ERROR: Hi Arthraim! You've successfully authenticated, but GitHub does not provide shell access

8、上傳代碼 最后就是上傳你的代碼了~ bash切換到你的項(xiàng)目目錄下,輸入以下命令。 git remote add origin git@github.com:你的github用戶名/你的github項(xiàng)目名.git git push origin master hehe,現(xiàn)在再去http://github.com/你的github用戶名/你的github項(xiàng)目 就可以看到你的項(xiàng)目了~ Good luck 當(dāng)然這是從無到有,如果你有一個(gè)git的repo,想添加到git-hub上,那就直接使用第8步的命令就可以了(不要忘記密匙的相關(guān)工作)。話說很多初學(xué)者應(yīng)該會(huì)和我一樣,在初期搞不清git和git-hub的關(guān)系,git是和CVS,SVN并列的一個(gè)概念,而git-hub是和Google Code, source-forge并列的一個(gè)概念,這樣說就明白了吧。所以,git的學(xué)習(xí)的話,參見這里。 BTW:Git-hub的社區(qū)感很好,體驗(yàn)很不錯(cuò),怪不得有這么多人在git-hub上樂此不疲的交流代碼。

?

?

# Git## 分布式世界### 1. 版本控制之道- 版本庫- 集中式(CVS、SVN)- 分布式(git) - 工作目錄樹- 斷面視圖- 工作拷貝- 1、初始化(init).git目錄- 2、克隆(clone) - 代碼修改與文件同步 - 跟蹤項(xiàng)目、目錄和文件 - 使用標(biāo)簽跟蹤里程碑 - 使用分支來跟蹤并行演進(jìn) - 合并 - 鎖機(jī)制### 2. 安裝與設(shè)置- 安裝- Linux- Mac:sudo port install git-core +svn +doc- Windows- Cygwin- MSys - 設(shè)置 git config- 提 交 者:git config --global user.name "Jamsonwoo"- 郵件地址:git config --global user.email "Jamsonwoo@126.com"- 查看:git config --global --list- 顏色:git config --global color.ui "auto" (auto/always/false)(注:MSys建議用always) - GUI- Tcl/TK:git gui(備注:工作目錄樹)- gitk --all(備注:工作目錄樹)- GitX (Mac) - 內(nèi)置幫助- git help <command>- git-doc### 3. Hello Git- 創(chuàng)建版本庫:git int - 修改代碼- 1、添加索引:git add index.html- 2、提交記錄:git commit -m "add in hello git HTML" (備注:提交留言至少應(yīng)該體現(xiàn)出進(jìn)行本次修改的原因。先用一句簡(jiǎn)單的話來概括該提交;然后用幾句話全面解釋。)- 3、查看日志- git log <-1>(擴(kuò)展:SHA-1哈希碼)- git log --pretty=oneline - 視圖狀態(tài):git status (備注:存放代碼)- 1、工作目錄樹 - 2、索引(暫存區(qū)) - 3、版本庫 - 分支- 1、創(chuàng)建分支:git branch 新分支名稱 父分支名稱 git branch RB_1.0 master- 2、提交修改:git commit -a(-a:提交全部修改過的文件)- 3、切換分支:git checkout 分支名稱 git checkout RB_1.0 - 處理發(fā)布- 1、打標(biāo)簽:git tag 標(biāo)簽名稱 打標(biāo)簽的點(diǎn) git tag 1.0 RB_1.0- 2、變基命令:git rebase 分支名稱(合并到主分支) git rebase RB_1.0- 3、刪除分支:git branch -d 分支名稱 git branch -d RB_1.0- 4、創(chuàng)建歸檔:git archive --format=輸出格式 --prefix=包內(nèi)容 需要?dú)w檔的標(biāo)簽名稱 | gzip > 壓縮結(jié)果重定向 - git archive --format=tar --prefix=mysite-1.0/ 1.0 | gzip > mysite-1.0.tar.gz - git archive --format=zip --prefix=mysite-1.0/ 1.0 > mysite-1.0.zip - 克隆遠(yuǎn)程版本庫:git clone 遠(yuǎn)程版本庫的位置 存放該版本庫的本地目錄 git clone git://github.com/tswicegood/mysit.git mysite-remote## Git用法### 1. 添加與提交- 添加文件到暫存區(qū)- 1、啟動(dòng)交互命令提示符:git add -i- 2、直接進(jìn)入補(bǔ)丁模式:git add -p - 提交修改- 1、跟蹤空目錄:git不單獨(dú)記錄和跟蹤目錄,解決:在空目錄里添加一個(gè)句點(diǎn)開頭的空文件- 2、git commit 的提交留言編輯器 -v - 如果輸入不帶-m參數(shù)的git commit命令,Git將啟動(dòng)編輯器來編輯提交留言。為啟動(dòng)編輯器,Git會(huì)按照一下順序查找編輯器的設(shè)置:- 1、環(huán)境變量 GIT_EDITOR 的值。- 2、Git 的設(shè)置 core.editor 的值。- 3、環(huán)境變量 VISUAL 的值。- 4、環(huán)境變量 EDITOR 的值。- 5、如果上述值均為空,Git 會(huì)嘗試啟動(dòng) vi 編輯器。 - 提交三法 - 備注 a、提交暫存后的修改(先暫存后提交) - 備注 b、提交工作目錄樹中的所有修改(把修改直接提交) - 備注 c、提交工作目錄樹中執(zhí)行的修改(把修改直接提交)- 1、添加到暫存區(qū)- 1、git add 文件- 2、git commit -m "留言"- 2、提交所有修改到版本庫:git commit -m "留言" -a- 3、指定提交文件(列表):git commit -m "留言" 文件 Git別名: git commit 簡(jiǎn)寫為:git ci git config --global alias.ci "commit" - 查看修改內(nèi)容- 1、查看當(dāng)前狀態(tài):git status Changes to be committed. 待提交變更 Changed but not updated. 未更新到索引的變更- 2、查看文件改動(dòng):git diff- a、git diff 無參 工作目錄樹 VS 暫存區(qū)- b、git diff --cached 暫存區(qū) VS 版本庫- b、git diff HEAD 工作目錄樹(暫存+未暫存) VS 版本庫 - 管理文件- 1、文件重命名與移動(dòng):git mv 原文件名稱 新文件名稱- 2、復(fù)制文件:無git cp命令,無需復(fù)制- 3、忽略文件:- a、版本級(jí):文件加入.gitignore文件中,支持通配符*- b、本地級(jí):.git/info/exclude### 2. 分支- 什么叫分支- 分支重命名:git branch -m 分支原名稱 新名稱 git branch -m master mymaster- 顯示本地版本庫所有本地分支名稱:git branch- 創(chuàng)建分支:1、試驗(yàn)性更改 2、增加新功能 3、Bug修復(fù) - 創(chuàng)建新分支- 創(chuàng)建分支:git branch 新分支名稱 git branch newBranchName- 檢出分支:git checkout 分支名稱 git checkout newBranchName- 創(chuàng)建并檢出:git checkout -b 新分支名稱 新分支源分支 git checkout -b newBranchName2 master - 合并分支- 合并(merge)方法- 1、直接合并:把兩條分支上的歷史軌跡合并,交匯到一起- 2、壓合合并:一條分支上若干提交條目壓合成一個(gè)提交條目,提交到另一條分支的末梢- 3、揀選合并:揀選另一條分支上的某個(gè)提交條目的改動(dòng)帶到當(dāng)前分支上- 直接合并- git merge 分支名稱 git checkout alternate git add about.html git commit -m "add about page" git checkout master git merge alternate- 壓合合并- git merge --squash 分支名稱 git checkout -b contact master git add contact.html git commit -m "add contact file" git commit -m "add contact file 2" -a git checkout master git merge --squash contact git status git commit -m "add contact page" -m "has primary and secondary email"- 揀選合并- git cherry-pick 提交名稱 git checkout contact git commit -m "add contact 3" -a [contact 6dbaf82]...... git checkout master git cherry-pick 6dbaf82 / git cherry-pick -n 6dbaf82 - 沖突處理- git merge git checkout -b about master 編輯about.html git add about.html git commit -m "add about.html " git branch about2 about 編輯about.html git commit -m "add about.html 1" -a git checkout about2 編輯about.html git commit -m "add about.html 2" -a git checkout about git merge about2 git mergetool git commit- 處理沖突軟件(kdiff3):git config --global merge.tool kdiff3- git mergetool - 刪除分支- git branch -d 分支名稱 (成功合并到當(dāng)前分支時(shí)) git branch -d about2- git branch -D 分支名稱 (強(qiáng)制刪除) - 分支重命名- git branch -m 原分支名稱 新分支名稱 (不允許重名) git branch -m contact abc- git branch -M 原分支名稱 新分支名稱 (強(qiáng)制覆蓋) git branch -m master contact### 3. 查詢歷史記錄- 查看日志- git log- j 向下瀏覽;k 向上瀏覽;q 退出- 提交名稱、提交人、提交日期、提交留言- git log -p (顯示版本之間的代碼差異)- git log -1(數(shù)字表示提交日志條數(shù))- git log 7b1558c (指定提交名稱縮寫[前7位]) - 指定查找范圍- git log --since/before="英文格式日期"- git log --since="5 hours" (最近5小時(shí)內(nèi))- git log --before="2012-8.20" -1 (20120820之前的最后一條)- git log 最老版本..最新版本- git log 18f822e..0bb3dfb- 注:日志結(jié)果不包括最老,包括最新- git log 18f822e..HEAD / git log 18f822e..- git log 標(biāo)簽名稱- git log --pretty=format:"%h %s" 1.0..HEAD- git log --pretty=oneline 1.0..HEAD- \^:回溯一個(gè)版本- git log 18f822e^^- 注:1、windows系統(tǒng)下,^需要添加雙引號(hào) git log “18f822e^^”。- 注:2、當(dāng)遇到某個(gè)節(jié)點(diǎn)(通常是版本合并后的節(jié)點(diǎn))有并列的多個(gè)父節(jié)點(diǎn)時(shí),“^1”代表第一個(gè)父節(jié)點(diǎn),“^2”代表第二個(gè),以此類推。而“^”是“^1”的簡(jiǎn)寫。- *~N:回溯N個(gè)版本- git log -1 HEAD^^^ / git log -1 HEAD^~2 / git log -1 HEAD~1^ / git log -1 HEAD~3- git log -1 HEAD~10..HEAD - 查看版本間差異- git diff 版本名稱(與當(dāng)前工作目錄樹的差異)- git diff 18f822e- git diff --stat 1.0(數(shù)據(jù)統(tǒng)計(jì)) - 查明提交者- git blame 文件名(特定代碼塊歷史)- git blame hello.html- 注:1、格式:提交名稱 初始文件名(提交人 提交時(shí)間 行號(hào)) 代碼行- 注:2、^脫字號(hào)開頭表示版本庫中第一個(gè)遞交- git blame -L <開始>,<結(jié)束> 文件名(特定代碼行歷史)- git blame -L 12,13 hello.html- git blame -L 12,+2 hello.html- git blame -L 12,-2 hello.html- git blame -L 正則表達(dá)式 文件名(特定代碼行歷史)- git blame -L "/<\/body>/",+2 hello.html- >git blame -L "/<\/body>/",-2 "4333289e^" -- index.html - 跟蹤內(nèi)容- 檢查在同一個(gè)文件內(nèi)移動(dòng)或復(fù)制的代碼行:git blame -M 文件名- 查看文件之間的復(fù)制:git blame -C -C 文件名- 查看顯示代碼的具體變動(dòng)的歷史記錄:git log -C -C -1 -p - 撤銷修改- 增補(bǔ)提交:git commit -C HEAD -a --amend- --amend:增補(bǔ)提交- -C:復(fù)用指定提交的提交留言- -c:打開編輯器,在已有提交留言基礎(chǔ)上修改- 反轉(zhuǎn)提交:git revert -n 提交名稱- 參數(shù):--no-edit- 復(fù)位:git reset 提交名稱- 提交名稱默認(rèn)值:HEAD- 提交名稱可用^和~修飾符- 參數(shù)--soft:暫存所有因復(fù)位帶來的差異,但不提交它- 參數(shù)--hard:慎用,從版本庫和工作目錄樹中同時(shí)刪除提交 - 重新改寫歷史記錄- 重新排序提交:git rebase -i HEAD~3- 將多個(gè)提交壓合成一個(gè)提交:git rebase -i 0bb3dfb^- 將一個(gè)提交分解成多個(gè)提交:git rebase --continue### 4. 與遠(yuǎn)程版本庫協(xié)作- 網(wǎng)絡(luò)協(xié)議- SSH:用戶名@服務(wù)器名/版本庫路徑 git@github.com/tswicegood/mysite-chp6.git- git:協(xié)議://服務(wù)器名/版本庫路徑 (使用9418端口、匿名、無須加密、只讀) git://github.com/tswicegood/mysite-chp6.git- HTTP/HTTPS:需架設(shè)WebDAV服務(wù)- 最快:git- 安全:SSH- 不受防火墻限制:HTTP(S) - 克隆遠(yuǎn)程版本庫:git clone git://github.com/tswicegood/mysite-chp6.git - 版本庫同步- 取來(fetch):git fetch- 查看遠(yuǎn)程分支:git branch -r- 取來合并:git pull 遠(yuǎn)程版本庫名稱 須要拖入的遠(yuǎn)程分支名- 遠(yuǎn)程分支名前綴origin/表示遠(yuǎn)程版本庫上的分支名稱,origin是默認(rèn)遠(yuǎn)程版本庫別名 - 推入改動(dòng)- 推入默認(rèn)版本庫origin:git push- 查看推入哪些提交:git push --dry-run- 推入指定版本庫:git push <repository> <refspec> git push origin mybranch:master - 添加新的遠(yuǎn)程版本庫- 一次拖入:git pull git://ourcompany.com/dev-erin.git- 使用別名:git remote add 別名 路徑- 查看遠(yuǎn)程版本庫詳細(xì)信息:git remote show <name>- 刪除別名:git remote rm### 5. 管理本地版本庫- 使用標(biāo)簽標(biāo)記里程碑- 標(biāo)簽只讀、標(biāo)簽名不能包含空格- 查看已存在標(biāo)簽:git tag- 新建標(biāo)簽:git tag 標(biāo)簽名- git tag 標(biāo)簽名 提示名稱/分支名稱 - 發(fā)布分支的處理- 發(fā)布分支通常以RB_為前綴并包含版本號(hào),RB_1.3- git branch RB_1.0.1 1.0 - 標(biāo)簽與分支的有效名稱- 不能以“/”結(jié)尾- 不能以“.”開頭- 不能使用特殊字符:空格~^:?*[控制符刪除鍵- 不能出現(xiàn)“..” - 記錄和跟蹤多個(gè)項(xiàng)目- 多個(gè)項(xiàng)目共享一個(gè)版本庫- 多項(xiàng)目多版本庫 - 使用Git子模塊跟蹤外部版本庫- 添加新子模塊- 查看該版本庫的子模塊:git submodule- 添加新子模塊:git submodule add 源版本庫 存儲(chǔ)路徑 git submodule add git://github.com/tswicegood/hocus.git hocus- 初始化子模塊:git submodule init hocus- 克隆含子模塊的版本庫:git submodule update 子模塊名 cd work git clone magic new-magic cd new-magic git submodule git submodule init hocus git submodule update hocus- 改變子模塊的版本- 使用子模塊時(shí)要提防的錯(cuò)誤- git add 確保結(jié)尾沒有“\”- submodule update 先檢查提交- 添加新內(nèi)容到本地自模塊版本庫,要檢出正確分支- 修改提交,確保改動(dòng)被送回遠(yuǎn)程版本庫### 6. 高級(jí)功能- 壓縮版本庫- git gc 整理版本庫、優(yōu)化Git內(nèi)部存儲(chǔ)歷史記錄- git gc <--aggressive> 重新計(jì)算增量存儲(chǔ)單元 - 到處版本庫- 創(chuàng)建版本快照:git archive 格式類型 指定版本- git archive --format=<tar/zip> <--prefix=父目錄> 轉(zhuǎn)換格式 git archive --format=zip --prefix=mysite-release/ HEAD > mysite-release.zip git archive --format=tar --prefix=mysite-release/ HEAD | gzip > mysite-release.tar.gz - 分支變基- git rebase --continue/--skip/--abort- git rebase --onto master contacts search - 重現(xiàn)隱藏的歷史:git reflog - 二分查找- git bisect start- git bisect bad- git bisect good 1.0- git bisect reset- git bisect visualize- git bisect log- git bisect replay <文件>- git bisect run

  

?

?

?

?

git init git add . //指的是把所有文件 添加到本地repository git commit -m "test" //這里是添加commit的message git remote add origin git://git.openwrt.org/14.07/openwrt.git git push origin master //origin指的是remote 遠(yuǎn)端地址, master 指的是你的分支。 代碼提交一般有五個(gè)步驟: 1.查看目前代碼的修改狀態(tài) 2.查看代碼修改內(nèi)容 3.暫存需要提交的文件 4.提交已暫存的文件 5.同步到服務(wù)器1. 查看目前代碼的修改狀態(tài) 提交代碼之前,首先應(yīng)該檢查目前所做的修改,運(yùn)行g(shù)it status命令 a) 已暫存 (changes to be committed) new file //表示新建文件 modified //表示修改文件 deleted //表示刪除文件 b) 已修改 (changed but not updated) modified //表示修改文件 deleted //表示刪除文件 另外,git 給出了可能需要的操作命令,git add/rm, gitcheckout --c) 未跟蹤 (untracked files)2. 查看代碼修改的內(nèi)容git diff <file> 比較某文件與最近提交節(jié)點(diǎn)的差異。 注意:如果該文件已暫存,那么應(yīng)該使用git diff –cached<file>git diff <hashcode> <hashcode> <file> 比較某文件在提交節(jié)點(diǎn)a,節(jié)點(diǎn)b的差異。 技巧:如果省略后面一個(gè)hashcode,則默認(rèn)表示與上一提交節(jié)點(diǎn)比較。(也可以利用^運(yùn)算符3. 暫存需要提交的文件 如果是新建的文件 則git add <file> 如果是修改的文件則git add <file> 如果是刪除的文件則 git rm <file>4. 提交已暫存的文件 git commit 注意注釋填寫規(guī)范。git commit --amend 修改最近一次提交。有時(shí)候如果提交注釋書寫有誤或者漏提文件,可以使用此命令。5. 同步到服務(wù)器 同步到服務(wù)器前先需要將服務(wù)器代碼同步到本地 命令: git pull 如果執(zhí)行失敗,就按照提示還原有沖突的文件,然后再次嘗試同步。 命令:git checkout -- <有沖突的文件路徑>同步到服務(wù)器 命令: git push origin <本地分支名> 如果執(zhí)行失敗,一般是沒有將服務(wù)器代碼同步到本地導(dǎo)致的,先執(zhí)行上面的git pull命令。

總結(jié)

以上是生活随笔為你收集整理的git使用,Git的skil-map的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。