Git基本教程

git作為一個分布式版本控制軟件,已經成為我們工作中使用的最廣泛的工具。
git詳細介紹點這里

三個概念

  • 已提交(mommitted)
    該文件已經被安全滴保存在本地數據庫種了。例如git clone 其實就是這個狀態(tài)
  • 已修改(modified)修改了某個文件,但還沒提交保存
  • 已暫存(staged)把已經修改的文件放在下次提交時要保存的清單里

三個區(qū)域

  • 工作區(qū)(也稱工作目錄),working directory
  • 暫存區(qū) ,satge/index
  • 歷史記錄區(qū)(也稱版本區(qū)),history

    轉個阮一峰老師的圖吧
    QQ截圖20171205221637.png

幾個常見名詞

  • remote 遠程倉庫
  • origin 一般默認遠程倉庫的標簽
  • master 主支干
  • Dev 分支

基礎命令

  • 第一次使用需要設置用戶名和郵箱
    git config --global user.name "name"用戶名
    git config --global user.email "email address"郵箱
  • git add . 把文件的所有改變都放入暫存區(qū)
  • git status 查詢文件狀態(tài)
  • git rm 刪除文件
  • git mv 重命名文件
  • 提交到本地倉庫有幾個命令
    git commit -am "備注信息"
    git commit -a "備注信息"
    git commit -m "備注信息"
    注意備注信息是必須要填寫的,而且盡量簡明扼要
  • git pull 用來更新本地倉庫版本的
  • git push 提交到遠程倉庫

遠程本地操作

  • git clone 遠程下載,最常用的命令
    git clone origin "項目地址"
    注意,地址協(xié)議有幾種、http,https,git等,但是推薦用ssh,也就是git協(xié)議,因為最快
  • 使用ssh協(xié)議,則必須要有公私鑰對,沒有的話,必須要設置一個,不會的點這里
  • 修改文件用vim打開,修改后退出保存,安利自己寫的vim使用教程
  • 然后git add. git commit git push

本地文件推送到遠程倉庫

  • mkdir 文件夾名 新建文件夾
    touch 文件 新建文件
  • 最重要的步驟:git init
    git是本地倉庫和遠程倉庫之間的傳送工具,可是我們剛剛只是建了文件夾,
    文件夾又不是倉庫,自然無法git傳送,所以我們要把文件夾變成倉庫
    這里重要的概念就是,倉庫里有個隱藏的.git的文件,只要文件夾里有.git 就行了
    git init初始化文件夾為本地倉庫
  • 這時我們git add. git commit git push 時 它會報錯說找不到遠程庫
    我們clone的時候,遠程倉庫會自動建立兩者的鏈接關系,但我們只在本地創(chuàng)建倉庫
    和遠程庫就沒有關系了,這時我們就得讓它倆有關系
    git remote add origin 遠程庫地址添加遠程庫標簽
    git remote -v 查詢本地倉庫的遠程倉庫地址
    git remote set-倉庫地址 倉庫名 修改遠程倉庫地址
  • 這時我們就可以提交了

分支操作

  • 分支操作可以說是git 使用中最重要的操作了(不懂什么是分支,請自行谷歌/百度),首先要知道,倉庫有且只能有一個maser分支,可以說是主干,所有提供給用戶使用的正式版本,都在這個主分支上發(fā)布。

  • git branch查看本地分支列表
    git branch -r查看遠程分支列表
    git branch -a 查看所有本地遠程分支

  • git branch dev 創(chuàng)建本地庫dev分支
    git checkout dev 切換到dev分支
    這兩個可以簡寫成下面這個命令
    git checkout -b dev

  • 合并分支
    首先用git checkout 分支名 切換到需要合并的分支上去,一般都是master分支
    然后使用git marge 需要被合并的分支名 合并分支到主分支上

  • 刪除分支
    git branch -d 分支名

  • 刪除遠程分支
    git push origin --delete [branch-name]
    git branch -dr remote/branch

撤銷操作/版本回滾

  • 這次簡單介紹下,我理解也不是很透徹,之后會專門寫一篇關于此的文章
  • 一般是兩種用法git resetgit revert
  • git reset --"參數"一般參數有hard、mixed、soft
    git reset --hard 版本回退,同時工作區(qū)和暫存區(qū)的文件也回到此版本時的狀態(tài)
    git reset --mixed 默認參數,改變引用文件,不改變工作區(qū)文件,但是會改變暫存區(qū)文件
    git reset --soft只修改文件,不會改變暫存區(qū)和工作區(qū)文件
    可以這樣理解,當你需要徹底回到某個提交版本時,就用hard;若是想保留自己修改過的文件,就用mixed,保留下文件源碼,這也是默認方式;若是僅僅只是想撤銷某次提交,就用soft,保留下所有修改文件
  • git revert 撤銷 某次操作,此次操作之前和之后的commit和history都會保留,并且把這次撤銷作為一次最新的提交
    git revert HEAD 撤銷前一次 commit
    git revert HEAD^ 撤銷前前一次 commit
    git revert 的撤銷并不是意義上刪除,而是重新提交一次commit命令,
    只是這個命令內容剛好和要撤銷的那個命令完全相反,造成了回到錯誤提交狀態(tài)之前,但是你查記錄會發(fā)現,里面會有之前錯誤的commit ,也有這次的commit
  • 兩者區(qū)別,最大的區(qū)別在于,git revert 時,版本是前進的,而git reset時,版本其實是回到撤銷的命令的版本
    我的理解是,revert,就相當于政府連續(xù)發(fā)布了兩條完全相反的命令,造成了狀態(tài)上的恢復,但是大家知道確實有過這個命令,而reset則是干脆刪除了這個命令,直接強制恢復,抽取了的記憶,這個是斷層的,不存在了,認為什么都沒發(fā)生
  • 更深層的就只能大家在使用中去體會了,我以后會寫一篇詳細的文章。

寫在最后

  • 當有沖突時,要先修改文件,再提交
  • 更多git使用教程請點這里
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Git是目前最流行的版本管理系統(tǒng),也是最先進的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,978評論 1 17
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,870評論 1 26
  • 剛剛和好友談起金錢的事情,很多人為了錢怎么地怎么地的,我想給大家講個故事,看看我們古人的金錢觀,古人的高風亮節(jié)。 ...
    右邊的雨閱讀 1,354評論 0 0
  • 元宵佳節(jié)到大街小巷放鞭炮,期盼的就是,一家人團團圓圓享受親情時刻。一大早就被外婆從睡眼朦朧中喚醒,到廟里燒香拜拜。...
    笛夕閱讀 266評論 4 3
  • 化妝順序: 護膚:潔面—水—眼霜—精華—乳液(沒有隔離了。。。) 彩妝:氣墊粉底—遮瑕膏—修眉—畫眉—眼影—眼線—...
    大琳DL閱讀 660評論 0 0

友情鏈接更多精彩內容