Git 是一種分布式版本控制系統(tǒng)
創(chuàng)建版本庫
mkdir dirname 新建目錄
cd dirname
git init 把該目錄變成 Git 倉庫
該目錄下有個 .git 隱藏目錄,不要去改這個目錄里的文件
添加文件
git add filename.txt
把文件提交給倉庫
git commit -m "xxx" -m后面輸入的是本次提交的說明
查看倉庫當前狀態(tài)
git status
比較修改了什么內容
git diff filename.txt
查看提交的歷史
git log 命令顯示從最近到最遠的提交日志
git log --pretty=oneline 每個版本只輸出一行(commit id 和 提交說明)
查看提交的命令歷史
git reflog
你看到的一大串字符是commit id(版本號)
在Git中,用HEAD表示當前版本,上一個版本是HEAD^,上上版本是HEAD^,往上前 n 個版本是 HEAD~n
git reset --hard HEAD^ 回退到上一版本
git reset --hard 版本號 到該commit id 號對應的版本 commit id 可以不寫全,但一定要寫到 Git可以區(qū)分的程度
工作區(qū)和暫存區(qū)的概念
dirname 就是一個工作區(qū)
工作區(qū)里的隱藏目錄 .git ,不算工作區(qū),是 Git 的版本庫
Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),
還有Git為我們自動創(chuàng)建的第一個分支master,以及指向master的一個指針叫HEAD
git add命令實際上就是把要提交的所有修改放到暫存區(qū)(Stage),然后,執(zhí)行git commit就可以一次性把暫存區(qū)的所有修改提交到分支。
Git 管理的是修改。你第一次修改 filename.txt 并執(zhí)行 git add ,把它提交到暫存區(qū),第二次修改 filename.txt 不添加,執(zhí)行 git commit
你會發(fā)現(xiàn)只有第一次的修改被提交了,第二次沒有被提交。 git commit 只負責暫存區(qū)中的內容
每次修改,如果不add到暫存區(qū),那就不會加入到commit中
撤銷修改
場景1:當你改亂了工作區(qū)某個文件的內容,想直接丟棄工作區(qū)的修改時,用命令git checkout -- filename
場景2:當你不但改亂了工作區(qū)某個文件的內容,還添加到了暫存區(qū)時,想丟棄修改,分兩步,第一步用命令git reset HEAD filename(HEAD表示最新版本),就回到了場景1,
第二步按場景1操作。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,回退一個版本。
刪除文件
rm filename
Git 會記錄下來,使用 git status 會告訴你哪些文件被刪除了
如果確實要從版本庫中刪除,用 git rm 刪掉,并且要用 git commit
如果誤刪 用 git checkout -- filename git checkout其實是用版本庫里的版本替換工作區(qū)的版本,無論工作區(qū)是修改還是刪除,都可以“一鍵還原”。
要關聯(lián)一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git;
關聯(lián)后,使用命令git push -u origin master第一次推送master分支的所有內容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
克隆一個倉庫,git clone 倉庫的地址
查看分支:git branch
創(chuàng)建分支:git branch <name>
切換分支:git checkout <name>
創(chuàng)建+切換分支:git checkout -b <name>
合并某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
用git log --graph命令可以看到分支合并圖。
git log --graph --pretty=oneline --abbrev-commit
分支策略
git merge --no-ff -m "merge with no-ff" dev
合并分支 加 --no--ff 表示以普通模式合并,-m 說明,合并后的歷史有分支,能看出來曾經做過合并,
通常,合并分支時,如果可能,Git 會使用Fast forward模式,而這種模式合并后看不出曾經做過合并。
git stash
把當前工作現(xiàn)場儲存起來,以后可以恢復現(xiàn)場繼續(xù)工作,像快照
git stash list 查看存的工作現(xiàn)場
恢復工作現(xiàn)場
git stash apply 恢復,恢復后 stash 內容不會刪除,需要用 git stash drop 來刪除
git stash pop ,恢復的同時把 stash 內容也刪除
強制刪除一個沒有被合并過的分支
git branch -D <name>
查看遠程庫信息,使用git remote -v;
本地新建的分支如果不推送到遠程,對其他人就是不可見的;
從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠程的新提交;
在本地創(chuàng)建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;
建立本地分支和遠程分支的關聯(lián),使用git branch --set-upstream branch-name origin/branch-name;
從遠程抓取分支,使用git pull,如果有沖突,要先處理沖突
創(chuàng)建標簽
命令git tag <name>用于新建一個標簽,默認為HEAD,也可以指定一個commit id;
git tag -a <tagname> -m "blablabla..."可以指定標簽信息;
git tag -s <tagname> -m "blablabla..."可以用PGP簽名標簽;
命令git tag可以查看所有標簽。
管理標簽
命令git push origin <tagname>可以推送一個本地標簽;
命令git push origin --tags可以推送全部未推送過的本地標簽;
命令git tag -d <tagname>可以刪除一個本地標簽;
命令git push origin :refs/tags/<tagname>可以刪除一個遠程標簽。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞名稱:Git基本命令-創(chuàng)新互聯(lián)
文章起源:http://www.chinadenli.net/article36/coihpg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、網(wǎng)站建設、網(wǎng)站排名、建站公司、品牌網(wǎng)站設計、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)