一些命令 git bash

bash基本命令

命令 說明
cd (change directory) 更改當前所在的目錄
pwd (print work directory) 顯示當前所在的目錄
ls (list) 展示當前或者指定目錄中的所有內(nèi)容信息 -a顯示所有內(nèi)容胞枕,-l詳細信息列表
touch 新建文件
mkdir 新建文件夾
rm (remove) 刪除文件把跨,加上-r可以用來刪除文件夾
rmdir 刪除空文件夾
cp (copy) 復制文件或者 文件夾-r
mv (move) 移動文件或者 文件夾
cat 查看文件內(nèi)容
less 分頁查看文件內(nèi)容
clear 清空屏幕 ( command + k )
reset 清空屏幕
open . 打開當前命令所指的文件目錄
echo 輸出內(nèi)容到屏幕
> 重定向指令 覆蓋
>> 重定向指令 追加

tab: 自動補全

上下方向鍵 命令歷史

vi編輯器

如同Windows下的記事本场勤,vi編輯器是Linux下的標配,通過它我們可以創(chuàng)建宝鼓、編輯文件。它是一個隨系統(tǒng)一起安裝的文本編輯軟件巴刻。

三種模式

  • 普通模式 ---- 普通模式下無法進行內(nèi)容編輯愚铡,每個按鍵都會對相應自己的命令
    1. 刪除功能
    `dd`  刪除光標所在的一整行
    `dw`  刪除光標所在的后面的一個單詞

    2. 撤銷
    `u` 撤銷

    3. 開一個新行
    `o` 在光標所在的行下面開一個新行
    `O` 在光標所在的行上面開一個新行

    4. 復制
    `yy` 復制光標所在的行    yank
    `yw` 復制一個單詞

    5. 粘貼
    `p`  粘貼               paste

    6. 光標的移動指令
        1. 方向鍵(不推薦使用)
        2. h j k l
        3. w e b 

    7. 重復命令
    數(shù)字+命令
  • 插入模式 ---- 我們可以像使用正常的編輯器一樣,去編輯內(nèi)容
  • 命令模式 ---- 可以輸入不同的命令胡陪,來實現(xiàn)不同的功能

模式切換

  1. 普通->插入
    i a
  2. 插入->普通
    esc ctrl+[
  3. 普通->命令
    :
  4. 命令->普通
    esc esc 或者刪掉 :
  • 插入模式和命令模式不能直接切換沥寥,需要先切換到普通模式中!

保存

進入命令模式

  • :w -- 保存
  • :q -- 退出
  • :wq -- 退出并保存
  • :q! -- 修改之后柠座,不想保存邑雅,就想退出
如果編輯器非正常退出,比如直接點擊了窗口的關閉按鈕妈经,那么下次進入編輯器編輯剛才的文件的時候淮野,會出現(xiàn)報錯捧书,解決方法就是,直接將骤星,生成的.xxx.swp文件刪除重新打開編輯器就可以了>伞!

版本控制工具

VCS Version control system

記錄所有的修改歷史妈踊,方便日后恢復到指定的修改的版本A撕俊!

版本控制工具還可很方便實現(xiàn)代碼共享廊营,以及合并歪泳!

分類

  • 本地版本控制工具

  • 集中式版本控制工具 (代表:SVM)

  • 分布式的版本控制工具 (代表:Git)

本地式只適合單人開發(fā)

集中式和分布式都可以適用于多人協(xié)作開發(fā),但是不同點在于:

  1. 集中式版本庫是存放在服務器上露筒,所有人開發(fā)都要從服務器獲取源代碼呐伞,并且修改之后需要提交給服務器!

  2. 分布式的版本庫是存放在本地慎式,當需要共享代碼的時候伶氢,通過源代碼共享服務器進行共享即可!瘪吏!

git

git的基本使用

  1. 配置 (一臺電腦只需要配置一次癣防,可以修改悠就,修改就是直接重復命令泼掠,會把原來的信息給覆蓋掉)
git config --global user.name "yonghuming"  (配置用戶名)
git config --global user.email "用戶郵箱"  (配置用戶郵箱)
  1. 初始化倉庫
cd 當前項目文件夾
git init
git init 命令建丧,實際就是在當前項目中創(chuàng)建了一個`.git`的隱藏文件夾胸遇,這個文件夾中就是用來保存所有的版本信息的內(nèi)容
  1. 添加文件到暫存區(qū)
git add 文件名 (可以添加單個文件辕狰,也可以一次性添加多個文件)
git add * 
git add .
git add -A
  1. 將文件從暫存區(qū)保存到版本庫径簿,生成新的版本
git commit -m "說明信息"
  1. 查看當前目錄下問價的狀態(tài)信息
git status
  1. 查看提交的版本歷史記錄
git log
  1. 將文件從暫存區(qū)恢復到工作目錄
git checkout 文件名
  1. 將文件從版本庫中指定的版本恢復到工作目錄
git reset --hard 版本號
  1. 查看所有操作流水
git log --graph --oneline --decorate --all
  1. 查看某個log(版本)的修改提交記錄
git show 版本號
  1. 克隆某個分支
git clone -b 分支名 遠程地址 文件夾名
  1. 拉取遠程代碼到本地
git pull
git pull --rebase   // 會使commit看起來很自然芬位。https://www.cnblogs.com/wangiqngpei557/p/6056624.html
  1. 清除所有的提交歷史記錄
1.Checkout
git checkout --orphan latest_branch

2. Add all the files
git add -A

3. Commit the changes
git commit -am "commit message"

4. Delete the branch
git branch -D master

5.Rename the current branch to master
git branch -m master

6.Finally, force update your repository
git push -f origin master
  1. git rebase 合并commit
合并提交記錄
1. git rebase -i <要合并到哪個版本號>  或  git rebase -i <開始版本號> <結束版本號>
2. 除了第一行記錄  其余的改成 s 然后保存退出
3. 編輯commit 記錄 然后保存退出
  1. git rebase merge分支 (讓提交記錄變得清晰 不會出現(xiàn) 執(zhí)行 git merge 指令 而產(chǎn)生merge的commit 節(jié)點)
git checkout dev
git rebase master # 將dev分支和master分支做一次衍合處理
# git提示出現(xiàn)了代碼沖突凿渊,此處為之前埋下的沖突點渺尘,處理完畢后
git add src/index.html # 添加沖突處理后的文件
git rebase --continue # 加上--continue參數(shù)讓rebase繼續(xù)處理
git checkout master
git merge dev

git的分區(qū)

  1. 工作目錄 (指的是項目文件存放的位置)
  2. 暫存區(qū) (用git add就會將文件添加到這個暫存區(qū))
  3. 版本庫 (存放版本歷史信息的位置)
git add 是將工作目錄中的文件內(nèi)容添加到了暫存區(qū)
git commit 是將暫存區(qū)中的內(nèi)容在版本庫中生成一條新的版本記錄
git checkout 是將暫存區(qū)中的內(nèi)容獲取出來放到了工作目錄
git reset --hard 是將版本庫中指定版本的內(nèi)容獲取出來放到工作目錄

一句話總結: git 其實就是將文件在各個區(qū)之間進行流轉4旄搿!

分支

oper command
創(chuàng)建分支 git branch 分支名 git checkout -b 分支名
切換分支 git checkout 分支名
刪除本地分支 git branch -D 分支名稱
合并分支 A分支 執(zhí)行命令 git merge BB合并到了A
查看所有分支 git branch git branch -a
查看本地分支與遠程的關聯(lián) git branch -vv
刪除遠程分支 git push origin --delete <BranchName>
創(chuàng)建并關聯(lián)遠程一個新分支 git checkout 分支名, 成功后 用 git branch -vv 看一下關聯(lián)
同步遠程分支到本地 (遠程可能刪掉了某些分支鸥跟,本地同步一下) git pull --prune git pull -p

沖突問題

分支A中創(chuàng)建了文件xx.txt, 分支B中也創(chuàng)建了個xx.txt丢郊,那么git就會發(fā)現(xiàn),有兩個同名的文件锌雀,這時候蚂夕,就是沖突產(chǎn)生了,沖突產(chǎn)生之后腋逆,合并會失敗婿牍,需要先解決沖突,然后再次提交惩歉,才能正常的合并等脂。

解決沖突

沖突產(chǎn)生之后俏蛮,git會告知哪個文件沖突了,然后在文件中上遥,會用 >>>> ==== <<< 這樣的方式將沖突的內(nèi)容標記出來搏屑,我們只需要將標記刪除,然后將代碼改成自己想要的結果粉楚,再次add commit即可@绷怠!

分支的使用原則

只要有新的任務模软,就開辟一個新的分支去做伟骨,做完之后,將分支合并回去就可以了H家臁携狭!

master分支

這個分支,是git默認自動創(chuàng)建的;乩逛腿!

創(chuàng)建的時機,并不是在git init之后就會有仅颇,而是单默,在第一次提交完成之后,才會默認的創(chuàng)建出來這個分支M摺雕凹!

分支切換要注意的事項

必須先將所有的更改,做一次提交之后政冻,再切換分支!O哂明场!

回滾操作/恢復操作

  • 如果用 git reset --hard 版本號 從版本庫里面恢復了某一個版本,那么以前的所有歷史版本也就不存在了李丰,回滾操作就是一粒后悔藥苦锨,如果短時間后悔恢復此版本,而且還想恢復另外一個版本趴泌,就可以用這個方法
  1. 查看所有的操作日志
git log -g
  1. 創(chuàng)建新的分支舟舒,將要恢復到的版本號作為最后一個參數(shù)
git branch 分支名 版本號
  1. git pull時出現(xiàn)沖突 放棄本地修改,使遠程庫內(nèi)容強制覆蓋本地代碼
git fetch --all                 //只是下載代碼到本地嗜憔,不進行合并操作
git reset --hard origin/master  //把HEAD指向最新下載的版本

  1. git push 本地強制覆蓋遠程
 git push ...... -f      -f命令

遠程倉庫

git

git 是一個分布式的 版本控制工具秃励,特點,就是版本庫存放在本地<贰6嵯省皆尔!

遠程倉庫的作用

就是共享版本庫!1依慷蠕! 共享代碼!J成搿流炕!

遠程倉庫的創(chuàng)建

遠程倉庫其實就是一個裸倉庫

裸倉庫

創(chuàng)建裸倉庫

git init --bare

裸倉庫創(chuàng)建完成之后,就不需要做任何操作了仅胞,在裸倉庫中不能進行任何的開發(fā)操作

遠程倉庫的操作命令

  1. 給遠程倉庫推送內(nèi)容
git push 遠程倉庫地址 本地分支名稱:遠程分支名稱

如果本地分支名稱和遠程分支名稱相同每辟,那么可以縮寫如下:
git push xxx.xxx.git master:master
git push xxx.xxx.git master

  1. 獲取遠程倉庫中 所有 的內(nèi)容
git clone 遠程倉庫地址 文件夾名稱

文件夾名稱也可以不用寫,默認使用的就是遠程倉庫的文件夾名稱1省影兽!

克隆不需要密碼驗證 push需要 因為防止別人也能隨便往你項目中推送東西

如果是克隆的遠程倉庫中的所有內(nèi)容,那么意味著莱革,項目中的所有分支中的內(nèi)容都被clone下來了峻堰,但是在git bash命令行中使用git branch命令看不到所有分支的名字,但是分支確實已經(jīng)存在了盅视,這個時候如果想要看某一個分支里面的內(nèi)容捐名,我們需要看遠程倉庫中的分支名稱,然后在bash命令中用git checkout "分支名",切換到了這個分支之后闹击,再用git branch查看分支名稱镶蹋,就可以看到了
  1. 獲取遠程倉庫中更新了的內(nèi)容
git pull 遠程倉庫地址 分支名稱
  • 如果在本地刪除了一個文件之后,想在遠程倉庫下載恢復此文件赏半,下載之前贺归,要重新add commit一下本地的項目文件。目的是讓遠程的倉庫和本地的版本庫中的數(shù)據(jù)做一下對比断箫,有差別拂酣,才能用pull獲得此文件。

注意

只有在遠程倉庫中從未推送過任何內(nèi)容的時候仲义,我們才能隨意向里面推送任何內(nèi)容

但是婶熬,一旦已經(jīng)推送過一次內(nèi)容了,那么之后就不能隨便的向遠程倉庫推送內(nèi)容了埃撵,能推送的赵颅,只能是和第一次推送相關的修改的內(nèi)容!暂刘!

每次在向遠程倉庫中推送新內(nèi)容的時候饺谬,必須先進行一次獲取更新內(nèi)容的操作(pull),否則可能推送失斠ゼ稹I淘獭5肌!

遠程倉庫

遠程倉庫地址別名

因為遠程倉庫地址的連接過長绪商,不容易記憶苛谷,所以每次在向服務器提交新內(nèi)容的時候,都需要重新去查看一次遠程倉庫的地址格郁,非常麻煩8沟睢!

我們可以為每個遠程倉庫地址例书,設置一個簡單的別名

設置遠程地址的別名

git remote add 別名 遠程倉庫地址

查看所有的遠程地址別名

git remote

刪除別名

git remote remove 別名

重命名別名

git remote rename 舊別名 新別名 

查看別名對應的地址

git remote get-url 別名

設置別名對應的地址

git remote set-url 別名

origin別名

如果是直接通過 git init 創(chuàng)建的倉庫锣尉,那么這個倉庫中是不會有origin的別名的!>霾伞自沧!

如果倉庫是通過 git clone 從遠程倉庫中獲取的內(nèi)容,那么這個倉庫中會自動添加一個 origin 的別名树瞭,指向的地址其實就是當時 clone 的遠程倉庫的地址

git安裝問題 踩坑

ssh

概念

用作客戶端和服務器通信的時候的一個安全的協(xié)議,全稱是 Secure Shell晒喷,一般用作服務器的遠程管理

ssh工具

在linux系統(tǒng)下孝偎,提供了一個工具,ssh凉敲,這個工具可以通過ssh協(xié)議連接服務器并對服務器進行遠程的管理

使用示例

ssh root@riksy.love

ssh協(xié)議的格式

用戶名@服務器的地址

公鑰以及私鑰的生成

  1. 通過ssh-keygen命令就可以生成公鑰和私鑰
ssh-keygen -t rsa

敲完這個命令之后衣盾,一定要一路敲回車,知道看到冒泡泡為止RァJ凭觥!蓝撇!

服務器免密登錄的設置步驟

  1. 生成公鑰以及私鑰
  2. 在服務器的 ~/.ssh/autorized_keys中將生成公鑰中的所有的內(nèi)容追加到里面去
  3. 再次登錄服務器就不需要密碼了;展辍!

github免密

github

提供了兩種推送和獲取代碼的協(xié)議

  1. https -- 地址:https://github.com/liuxinya/firstP.git
  2. ssh -- 地址:git@github.com:liuxinya/firstP.git

免密設置步驟

  1. 如果從未生成過秘鑰
    需要執(zhí)行 ssh-keygen -t rsa 生成秘鑰文件唉地,輸入此命令之后一路回車即可(在用戶根目錄下.ssh目錄中,有個id_rsa.pub文件)

  2. 打開github传透,點擊個人頭像耘沼,選擇下面的settings

  3. 點擊左邊欄中的 SSH and GPG keys

  4. 點擊頁面右上方的New SSH Key

  5. 打開自己的公鑰文件(用戶根目錄下.ssh目錄中,有個id_rsa.pub文件)復制文件中的所有的內(nèi)容

  6. 將復制好的內(nèi)容粘貼到 key 文本框中

  7. 點擊Add SSH key 按鈕

  8. 以后在本機使用github的時候朱盐,直接使用ssh協(xié)議的連接群嗤,就可以實現(xiàn)免密功能了!1铡狂秘!

只有使用ssh協(xié)議的連接骇径,才能夠實現(xiàn)免密的push,pull

靜態(tài)頁面托管

github給每個賬號提供了一個項目作為靜態(tài)頁面托管的機會者春!

我們可以將自己寫好的靜態(tài)頁面全部放到github上去破衔,通過指定的連接就能夠訪問到頁面效果!钱烟!

步驟

  1. 創(chuàng)建新的項目

  2. 項目名稱必須是 : 用戶名.github.io

  3. 將自己的寫好的項目直接推送到這個github倉庫中

  4. 通過 用戶名.github.io 地址 就可以直接訪問頁面了N浮!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拴袭,一起剝皮案震驚了整個濱河市读第,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拥刻,老刑警劉巖怜瞒,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異般哼,居然都是意外死亡吴汪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門逝她,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浇坐,“玉大人,你說我怎么就攤上這事黔宛〗酰” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵臀晃,是天一觀的道長觉渴。 經(jīng)常有香客問我,道長徽惋,這世上最難降的妖魔是什么案淋? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮险绘,結果婚禮上踢京,老公的妹妹穿的比我還像新娘。我一直安慰自己宦棺,他們只是感情好瓣距,可當我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著代咸,像睡著了一般蹈丸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天逻杖,我揣著相機與錄音奋岁,去河邊找鬼。 笑死荸百,一個胖子當著我的面吹牛闻伶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播管搪,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼虾攻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了更鲁?” 一聲冷哼從身側響起霎箍,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎澡为,沒想到半個月后漂坏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡媒至,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年顶别,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拒啰。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡驯绎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谋旦,到底是詐尸還是另有隱情剩失,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布册着,位于F島的核電站拴孤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏甲捏。R本人自食惡果不足惜演熟,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望司顿。 院中可真熱鬧芒粹,春花似錦、人聲如沸大溜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猎提。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锨苏,已是汗流浹背疙教。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伞租,地道東北人贞谓。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像葵诈,于是被迫代替她去往敵國和親裸弦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,645評論 9 163
  • 本文為 Git教程的學習筆記作喘,教程源自廖雪峰的博客理疙。這是一個由淺入深,學完后能立刻上手的Git教程泞坦。另窖贤,附上另一本...
    七弦桐語閱讀 6,240評論 5 47
  • 隨著年味的漸漸逝去,相比孩提時的春節(jié)來說贰锁,如今的春節(jié)還是有些無趣的赃梧,不過能和家人坐在一起包餃子,看電視豌熄,聊聊...
    季迦勒閱讀 378評論 0 0
  • 今天天氣很好授嘀,不冷不熱,風吹在人身上锣险,涼涼的蹄皱,很舒服; 今天打扮的很好囱持,雖然沒有化妝夯接,但穿了自己很早就想穿的牛仔背...
    輕鴿閱讀 153評論 0 0
  • 我還能不能撐開一個更大更好的世界呢
    瑾珠閱讀 355評論 0 0