溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Git 基本命令

發布時間:2020-07-11 18:44:00 來源:網絡 閱讀:801 作者:Art_vary 欄目:開發技術

Git 是一種分布式版本控制系統



創建版本庫
    mkdir  dirname 新建目錄
    cd dirname    
    git init   把該目錄變成 Git 倉庫

    該目錄下有個 .git 隱藏目錄,不要去改這個目錄里的文件



添加文件
    git add filename.txt


    
把文件提交給倉庫
    git commit -m "xxx"          -m后面輸入的是本次提交的說明



查看倉庫當前狀態
    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可以區分的程度




工作區和暫存區的概念

dirname 就是一個工作區

工作區里的隱藏目錄 .git ,不算工作區,是 Git 的版本庫


Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,
還有Git為我們自動創建的第一個分支master,以及指向master的一個指針叫HEAD

git add命令實際上就是把要提交的所有修改放到暫存區(Stage),然后,執行git commit就可以一次性把暫存區的所有修改提交到分支。

Git 管理的是修改。你第一次修改 filename.txt  并執行 git add ,把它提交到暫存區,第二次修改 filename.txt 不添加,執行 git commit

你會發現只有第一次的修改被提交了,第二次沒有被提交。       git commit 只負責暫存區中的內容

每次修改,如果不add到暫存區,那就不會加入到commit中


撤銷修改
    場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- filename

    場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD filename(HEAD表示最新版本),就回到了場景1,
    第二步按場景1操作。

    場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,回退一個版本。




刪除文件

    rm filename
    
    Git 會記錄下來,使用 git status 會告訴你哪些文件被刪除了

    如果確實要從版本庫中刪除,用 git rm 刪掉,并且要用 git commit

    如果誤刪  用 git checkout -- filename   git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。



要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git;

關聯后,使用命令git push -u origin master第一次推送master分支的所有內容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

克隆一個倉庫,git clone 倉庫的地址





查看分支:git branch

創建分支:git branch <name>

切換分支:git checkout <name>

創建+切換分支: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   
    把當前工作現場儲存起來,以后可以恢復現場繼續工作,像快照
    
git stash list 查看存的工作現場

恢復工作現場
    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抓取遠程的新提交;

在本地創建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;

建立本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

從遠程抓取分支,使用git pull,如果有沖突,要先處理沖突



創建標簽


    命令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>可以刪除一個遠程標簽。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女