Git 學(xué)習筆記

前言:一直知道分布式版本控制系統(tǒng)git,但是無奈從來沒有用過,有幸,最近公司開始改用git,故,利用上班空余時間,系統(tǒng)的學(xué)習了一下,以下便是我對git命令的一些總結(jié)。

來源https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

INSTALL 安裝

本人用的正是號稱最爛開發(fā)平臺的windows操作系統(tǒng),默認環(huán)境為windows (默默攢錢買Mac。。。。。)

下載網(wǎng)址:https://git-for-windows.github.io

安裝完成之后,Git里面會有三個應(yīng)用,分別是,GUI、CMD、Bash
打開Git Bash 完成基礎(chǔ)設(shè)置

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

設(shè)置完成后 會在用戶主目錄下面的一個隱藏文件.gitconfig里發(fā)現(xiàn)所設(shè)置的情況

CREATE 創(chuàng)建

$ mkidr <catalogue name> ——————創(chuàng)建空目錄
$ pwd ——————顯示當前目錄
$ git init ——————創(chuàng)建一個新的本地版本庫
$ ls -ah ——————查看隱藏目錄

創(chuàng)建目錄時請確保目錄名不包含中文

創(chuàng)建SSH Key

$ ssh-keygen -t rsa -C “youremail@example.com

設(shè)置完成后 會在用戶主目錄找到.ssh目錄, [id_rsa]是私鑰,[id_rsa.pub]是公鑰

注冊一個github帳號,將你的公鑰添加進去,你就獲得了一個Git遠程倉庫了

$ git remote add origin git@server-name:path/repo-name.git——————關(guān)聯(lián)一個遠程庫
$ git push -u origin master ——————推送master分支的所有內(nèi)容
$ git push origin master ——————推送最新修改
$ git clone <address> ——————從遠程版本庫克隆

address支持多種協(xié)議,包括https,但通過ssh支持的原生git協(xié)議速度最快

LOCAL CHANGES 本地更改

$ git add . ——————將所有當前更改添加到下一個更改
$ git add -p <file> —————— 在文件到下一個提交中添加一些更改
$ git add -f <file> ——————強制添加
$ git commit -m "<explain>" ——————把文件提交到倉庫
$ git commit -a ——————提交跟蹤文件中的所有本地更改
$ git commit . ———————提交之前更改
$ git commit --amend ——————提交最后一次更改
$ git status ——————查看倉庫當前狀態(tài)
$ git diff ——————追蹤文件更改
$ git diff HEAD -- <file> ——————查看工作區(qū)和版本庫里面最新版本的區(qū)別
$ git rm <file> ——————刪除文件

COMMIT HISTORY 提交歷史

$ git log ——————顯示最近到最遠的提交日志
$ git log --pretty=oneline ——————一列顯示日志信息
$ git log --pretty=oneline --abbrev-commit ——————一列顯示日志信息 縮寫
$ git log -p <file> —————— 顯示更改特定文件的日志信息
$ git blame <file> —————— 顯示在特定文件中誰更改了什么
$ git reflog ——————查看命令歷史
$ git log --graph ——————查看分支合并圖

UNDO 撤銷

$ git reset --hard HEAD ——————回退到當前版本
$ git reset --hard HEAD^ ——————回退到上個版本
$ git reset --hard HEAD^^ ——————回退到上個個版本
$ git reset --hard HEAD~100 ——————回退到上100個版本
$ git reset --hard <commit> ——————回退到指定版本
$ git reset HEAD <file> ——————撤銷暫存區(qū)的修改,重新放回工作區(qū)
$ git reset <commit>——————回退到指定版本并保存所有變化
$ git reset --keep <commit> ——————回退指定版本并保留未提交的本地更改
$ git checkout -- <file> —————— 丟棄本地更改
$ git checkout HEAD <file> —————— 丟棄特定文件中的本地更改
$ git revert <commit> ——————恢復(fù)更改

BRANCHES & TAGS 分支和標簽

$ git branch ——————查看分支
$ git branch -av ——————查看全部的分支列表
$ git branch <name> ——————創(chuàng)建分支
$ git checkout <name> ——————切換分支
$ git checkout -b <name> ——————創(chuàng)建+切換分支
$ git checkout --track <remote/branch> —————— 基于遠程分支創(chuàng)建一個新的分支
$ git branch -d <name> ——————刪除分支
$ git branch -D <name>——————強行刪除分支
$ git merge <name> ——————合并某分支到當前分支,fast forward模式,無分支歷史記錄
$ git merge --no-ff -m "explain" <name> ——————普通模式合并,合并后有歷史記錄
$ git tag <tag-name> —————— 打一個新標簽
$ git tag ——————查看所有標簽
$ git tag -a <tagname> -m "explain" ————指定標簽信息
$ git tag -s <tagname> -m "explain" ——————用PGP標簽簽名
采用PGP簽名,需要安裝GnuPg,至于如何使用和配置gpg,請移步:http://www.williamlong.info/archives/3439.html
$ git stash ——————隱藏當前工作現(xiàn)場
$ git stash list ——————查看工作現(xiàn)場
$ git stash apply ——————恢復(fù)工作區(qū) 不刪除stash
$ git stash pop ——————恢復(fù)工作區(qū) 刪除stash

UPDATE & PUBLISH 更新和發(fā)布

$ git remote -v —————— 顯示遠程庫詳細信息
$ git remote show <remote> —————— 顯示有關(guān)遠程的信息
$ git remote rm origin ——————刪除遠程庫
$ git fetch <remote> —————— 下載所有遠程更改但是不與當前版本合并
$ git pull <remote> <branch> —————— 抓取遠程庫的新提交
$ git push <remote/branch> —————— 從本地推送
$ git checkout -b branch-name origin/branch-name ——————在本地創(chuàng)建和遠程分支對應(yīng)的分支,本地和遠程分支的名稱最好一致
$ git branch --set-upstream branch-name origin/branch-name ——————建立本地分支和遠程分支的關(guān)聯(lián)
$ git push --tags —————— 推送標簽
$ git push origin <tagname> ——————推送一個本地標簽
$ git push origin --tags ——————推送全部未推送的本地標簽
$ git push origin :refs/tags/<tagname> ——————刪除一個遠程標簽

OTHER 其他

$ cat <file> ——————查看文件內(nèi)容
$ git config --global color.ui true ——————讓Git顯示顏色

設(shè)置忽略特殊文件 .gitignore

配置文件地址:https://github.com/github/gitignore

$ git check-ignore -v <file>——————檢查對應(yīng)文件.gitignore配置規(guī)則

偷懶好大法

$ git config --global alisa.<別名> <命令名> ——————配置別名

常見別名設(shè)置:

1.$ git config --global alias.st status
2.$ git config --global alias.co checkout
3.$ git config --global alias.ci commit
4.$ git config --global alias.br branch
5.$ git config --global alias.unstage 'reset HEAD'
6.$ git config --global alias.last 'log -1'
7.$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

說明:--global命令是對當前用戶起作用,如果不加,就只針對當前倉庫起作用
每個倉庫的Git配置文件都放在.git/config中

總結(jié) :

熟記命令,多敲多練,該偷懶時,就偷懶,哈哈

OK 好好學(xué)習,天天向上,加油!??!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,899評論 1 26
  • Git教程 一、Git簡介 1.1. Git的誕生1.2.集中式的vs分布式 二、安裝Git 三、創(chuàng)建版本庫 四、...
    曹淵說創(chuàng)業(yè)閱讀 1,037評論 0 2
  • git學(xué)習筆記 聲明 本文是本人學(xué)習Git過程中所做的筆記,以便日后查閱,文中多有錯漏之處,不建議用作學(xué)習材料,文...
    sayonara_yoyo閱讀 868評論 0 1
  • 有人說,用小米的都是屌絲,三年前,我擁有了第一臺小米手機,那時網(wǎng)上炒得火熱,性價比、支持國產(chǎn)、玩機體驗、饑餓營銷,...
    拂塵記閱讀 567評論 1 1
  • 閉上眼睛,在腦海里邊開始回憶我們的最開始見面的畫面。 那天你從校車上下來,呼喊我的全名,我轉(zhuǎn)頭,一個陽光健壯的男生...
    夏天有雨cjy閱讀 286評論 0 0

友情鏈接更多精彩內(nèi)容