終端管理Git倉(cāng)庫(kù)

目錄

一,通過(guò)終端創(chuàng)建項(xiàng)目

二倍靡,常見(jiàn)問(wèn)題

三猴伶,參考資料

說(shuō)明:Mac上使用,持續(xù)更新塌西;


一他挎,通過(guò)終端創(chuàng)建項(xiàng)目

1.1,生成電腦的公鑰捡需、私鑰(注意:默認(rèn)私鑰办桨、公鑰的名稱分別為:id_rsa,id_rsa.pub,電腦存在多個(gè)私鑰、公鑰的情況下站辉,使用的時(shí)候不要用錯(cuò)了)呢撞;


生成ssh key

生成ssh key的時(shí)候提示填寫密碼(2次),注意這里是提示設(shè)置密碼饰剥,這個(gè)密碼是與遠(yuǎn)程倉(cāng)庫(kù)交互 Pull殊霞、Push 的時(shí)候要填寫的密碼,直接回車不設(shè)置汰蓉,以后每次上傳下拉代碼就不需要填寫密碼绷蹲;注意不是電腦密碼,也不是遠(yuǎn)程倉(cāng)庫(kù)賬戶的密碼顾孽;


添加公鑰到GitHub遠(yuǎn)程倉(cāng)庫(kù):

添加公鑰

添加公鑰完成(鑰匙為黑色)

鑰匙為黑色

驗(yàn)證公鑰是否設(shè)置成功:

$ ssh -v git@github.com -i ssh_rsa

出現(xiàn)以下內(nèi)容祝钢,表示使用的秘鑰不匹配,即:GitHub上填寫的公鑰是錯(cuò)誤的岩齿,需要添加正確的公鑰太颤;

…………………

debug1: Authentications that can continue: publickey

debug1: Trying private key: /Users/freevision/.ssh/id_dsa

debug1: Trying private key: /Users/freevision/.ssh/id_ecdsa

debug1: Trying private key: /Users/freevision/.ssh/id_ed25519

debug1: Trying private key: /Users/freevision/.ssh/id_xmss

debug1: No more authentication methods to try.

git@github.com: Permission denied (publickey).

出現(xiàn)以下內(nèi)容,表示GitHub秘鑰/公鑰配置成功

…………………………….

Hi GitHubUserName xxxx/test2! You've successfully authenticated, but GitHub does not provide shell access.

debug1: channel 0: free: client-session, nchannels 1

Connection to github.com closed.

Transferred: sent 3008, received 2256 bytes, in 0.7 seconds

Bytes per second: sent 4505.1, received 3378.8

debug1: Exit status 1


文件更改/上傳文件之后盹沈,鑰匙變?yōu)榫G色龄章;

鑰匙為綠色


1.2,創(chuàng)建本地倉(cāng)庫(kù)乞封;

1.3做裙,拉取、上傳代碼肃晚;

注意區(qū)分:倉(cāng)庫(kù)名和文件名锚贱;

$?git push -u test2 master


1.4,常用指令关串;

一般來(lái)說(shuō)拧廊,日常使用只要記住下圖6個(gè)命令监徘,就可以了。但是熟練使用吧碾,恐怕要記住60~100個(gè)命令凰盔。

常用指令

下面是我整理的常用 Git 命令清單。幾個(gè)專用名詞的譯名如下倦春。

Workspace:工作區(qū)

Index / Stage:暫存區(qū)

Repository:倉(cāng)庫(kù)區(qū)(或本地倉(cāng)庫(kù))

Remote:遠(yuǎn)程倉(cāng)庫(kù)


生成密鑰

$?ssh-keygen -t rsa -C "email address"

配置

Git的設(shè)置文件為.gitconfig户敬,它可以在用戶主目錄下(全局配置),也可以在項(xiàng)目目錄下(項(xiàng)目配置)睁本。

// 顯示當(dāng)前Git 配置

$?git config --list

// 編輯Git配置文件

$?git config -e --global

// 配置提交文件時(shí)的用戶信息

$?git config --globaluser.name"name"

$?git config --globaluser.email"email address"


新建一個(gè)倉(cāng)庫(kù)

// 在當(dāng)前目錄新建一個(gè) Git 倉(cāng)庫(kù)

$?git init

//新建一個(gè)倉(cāng)庫(kù)尿庐,將其初始化為Git代碼庫(kù)

$ git init [project-name]

// 下載一個(gè)項(xiàng)目和他的整個(gè)代碼歷史?(地址:可以http也可以ssh)

$?git clone [url]

添加/刪除文件

// 添加指定文件到暫存區(qū)

$ git add filename1 filename2 .....?

// 添加指定目錄及其子目錄到暫存區(qū) ? ?

$ git add dir

// 刪除工作區(qū)文件,并且將這次刪除放入暫存區(qū)

$?git rm filename1 filename2 .....

// 停止追蹤指定文件呢堰,但該文件會(huì)保留在工作區(qū)

$?git rm --cached filename


代碼提交

// 提交暫存區(qū)到倉(cāng)庫(kù)區(qū)

$?git commit -m"message"

// 提交暫存區(qū)的指定文件到倉(cāng)庫(kù)區(qū)

$?git commit? filename1 filename2 .....? -m"message"

// 提交工作區(qū)自上次commit之后的變化抄瑟,直接到倉(cāng)庫(kù)區(qū)

$?git commit -a

// 提交時(shí)顯示所有diff信息

$?git commit -v

// 使用一次新的commit,替代上一次提交枉疼,如果代碼沒(méi)有任何新變化锐借,則用來(lái)改寫上一次commit的提交信息

$?git commit --amend -m"message"

// 重做上一次commit,并包括指定文件的新變化

$?git commit --amend filename1 filename2 .....


分支

// 列出所有本地分支

$?git branch

// 列出所有遠(yuǎn)程分支

$?git branch -r

// 列出所有本地分支和遠(yuǎn)程分支

$?git branch -a

// 新建一個(gè)分支往衷,但依然停留在當(dāng)前分支

$?git branch branchname

// 新建一個(gè)分支,并切換到該分支

$?git checkout -b branchname

// 新建一個(gè)分支严卖,指向指定

$?commitgit branch branchname commitname

// 新建一個(gè)分支席舍,與指定的遠(yuǎn)程分支建立追蹤關(guān)系

$?git branch --track branchname remotebranch

// 切換到指定分支,并更新工作區(qū)

$?git checkout branchname

// 切換到上一個(gè)分支

$?git checkout -

// 建立追蹤關(guān)系哮笆,在現(xiàn)有分支與指定的遠(yuǎn)程分支之間

$?git branch --set-upstream branchname remotebranch

// 合并指定分支到當(dāng)前分支

$?git merge branchname

// 選擇一個(gè)commit来颤,合并進(jìn)當(dāng)前分支

$?git cherry-pick commitname

// 刪除分支

$?git branch -D branchname

// 刪除遠(yuǎn)程分支

$?git push origin --delete branchname

$?git branch -dr [remote/branch]


查看 log

// 顯示有變更的文件

$?git status

// 顯示當(dāng)前分支的版本歷史

$?git log

// 顯示commit歷史,以及每次commit發(fā)生變更的文件

$?git log--stat

// 搜索提交歷史稠肘,根據(jù)關(guān)鍵詞

$?git log-S keyword

// 顯示某個(gè)文件的版本歷史福铅,包括文件改名

$?git log--follow filenamegit whatchanged filename

// 顯示指定文件相關(guān)的每一次

$?diffgit log-p filename

// 顯示過(guò)去5次提交

$?git log-5--pretty --oneline

// 顯示所有提交過(guò)的用戶,按提交次數(shù)排序

$?git shortlog -sn

// 顯示指定文件是什么人在什么時(shí)間修改過(guò)

$?git blame filename

// 顯示暫存區(qū)和工作區(qū)的差異

$?git diff

// 顯示暫存區(qū)和上一個(gè)commit的差異

$?git diff --cached filename

// 顯示工作區(qū)與當(dāng)前分支最新commit之間的差異

$?git diff HEAD

// 顯示兩次提交之間的差異

$?git diff [first-branch]...[second-branch]

// 顯示今天你寫了多少行代碼

$?git diff --shortstat"@{0 day ago}"

// 顯示某次提交的元數(shù)據(jù)和內(nèi)容變化

$?git show [commit]

// 顯示某次提交發(fā)生變化的文件

$?git show --name-only [commit]

// 顯示某次提交時(shí)项阴,某個(gè)文件的內(nèi)容

$?git show [commit]: filename

// 顯示當(dāng)前分支的最近幾次提交

$?git reflog


遠(yuǎn)程同步

// 下載遠(yuǎn)程倉(cāng)庫(kù)的所有變動(dòng)

$?git fetch [remote]

// 顯示所有遠(yuǎn)程倉(cāng)庫(kù)

$?git remote -v

// 顯示某個(gè)遠(yuǎn)程倉(cāng)庫(kù)的信息

$?git remote show [remote]

// 增加一個(gè)新的遠(yuǎn)程倉(cāng)庫(kù)滑黔,并命名

$?git remote add [shortname] [url]

// 取回遠(yuǎn)程倉(cāng)庫(kù)的變化,并與本地分支合并

$?git pull [remote] branchname

// 上傳本地指定分支到遠(yuǎn)程倉(cāng)庫(kù)

$?git push [remote] branchname

// 強(qiáng)行推送當(dāng)前分支到遠(yuǎn)程倉(cāng)庫(kù)环揽,即使有沖突

$?git push [remote] --force

// 推送所有分支到遠(yuǎn)程倉(cāng)庫(kù)

$?git push [remote] --all

撤銷

// 恢復(fù)暫存區(qū)的指定文件到工作區(qū)

$?git checkout filename

// 恢復(fù)某個(gè)commit的指定文件到暫存區(qū)和工作區(qū)

$?git checkout [commit] filename

// 恢復(fù)暫存區(qū)的所有文件到工作區(qū)

$?git checkout .

// 重置暫存區(qū)的指定文件略荡,與上一次commit保持一致,但工作區(qū)不變

$?git reset filename

// 重置暫存區(qū)與工作區(qū)歉胶,與上一次commit保持一致

$?git reset --hard

// 重置當(dāng)前分支的指針為指定commit汛兜,同時(shí)重置暫存區(qū),但工作區(qū)不變

$?git reset [commit]

// 重置當(dāng)前分支的HEAD為指定commit通今,同時(shí)重置暫存區(qū)和工作區(qū)粥谬,與指定commit一致

$?git reset --hard [commit]

// 重置當(dāng)前HEAD為指定commit肛根,但保持暫存區(qū)和工作區(qū)不變

$?git reset --keep [commit]

// 新建一個(gè)commit,用來(lái)撤銷指定

$?commit

// 后者的所有變化都將被前者抵消漏策,并且應(yīng)用到當(dāng)前分支

$?git revert [commit]

// 暫時(shí)將未提交的變化移除派哲,稍后再移入

$?git stashgit stash pop


二,常見(jiàn)問(wèn)題

$?mkdir prepass_repository?

File exists????????文件已存在哟玷;

Reinitialized existing Git repository in /Users/freevision/.git/

//在/Users/freevision/.git/中重新初始化現(xiàn)有Git存儲(chǔ)庫(kù)


$?git add?

Nothing specified, nothing added.

Maybe you wanted to say 'git add .'?

沒(méi)有指定狮辽,沒(méi)有添加。也許你想說(shuō)“git add”巢寡。


$ git remote add prepass_repository git@github.com:Georgecheng123/test2.git

$ git pull --rebase origin master

形式1喉脖,

git@github.com: Permission denied (publickey).

fatal: Could not read from remote repository.

致命:“origin”似乎不是git存儲(chǔ)庫(kù),致命:無(wú)法從遠(yuǎn)程存儲(chǔ)庫(kù)讀取抑月。

形式2树叽,

There are no deploy keys for this repository

Check out our guide on deploy keys to learn more.

這個(gè)存儲(chǔ)庫(kù)沒(méi)有部署密鑰

查看我們的部署密鑰指南,了解更多信息谦絮。

形式3题诵,

Allow write access

Can this key be used to push to this repository? Deploy keys always have pull access.

允許寫訪問(wèn),這個(gè)鍵可以用來(lái)推送到這個(gè)存儲(chǔ)庫(kù)嗎?部署密鑰始終具有拉訪問(wèn)權(quán)限层皱。


未完善內(nèi)容詳見(jiàn)參考資料


三性锭,參考資料:

Git 教程

Git官方中文手冊(cè)

常用 Git 命令清單

mac終端將本地代碼push到github總結(jié)

Github 的搭建和配置github中的SSH key值????(創(chuàng)建?ssh key )

Mac 配置Git環(huán)境與常用指令


褚小者不可以懷大,綆短者不可以汲深叫胖。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末草冈,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瓮增,更是在濱河造成了極大的恐慌怎棱,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绷跑,死亡現(xiàn)場(chǎng)離奇詭異拳恋,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)砸捏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門谬运,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人带膜,你說(shuō)我怎么就攤上這事吩谦。” “怎么了膝藕?”我有些...
    開(kāi)封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵式廷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我芭挽,道長(zhǎng)滑废,這世上最難降的妖魔是什么蝗肪? 我笑而不...
    開(kāi)封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮蠕趁,結(jié)果婚禮上薛闪,老公的妹妹穿的比我還像新娘。我一直安慰自己俺陋,他們只是感情好豁延,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著腊状,像睡著了一般诱咏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缴挖,一...
    開(kāi)封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天袋狞,我揣著相機(jī)與錄音,去河邊找鬼映屋。 笑死苟鸯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的棚点。 我是一名探鬼主播早处,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瘫析!你這毒婦竟也來(lái)了陕赃?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤颁股,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后傻丝,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體甘有,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年葡缰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亏掀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泛释,死狀恐怖滤愕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怜校,我是刑警寧澤间影,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站茄茁,受9級(jí)特大地震影響魂贬,放射性物質(zhì)發(fā)生泄漏巩割。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一付燥、第九天 我趴在偏房一處隱蔽的房頂上張望宣谈。 院中可真熱鬧,春花似錦键科、人聲如沸闻丑。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嗦嗡。三九已至,卻和暖如春牙言,著一層夾襖步出監(jiān)牢的瞬間酸钦,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工咱枉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卑硫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓蚕断,卻偏偏與公主長(zhǎng)得像欢伏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子亿乳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

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

  • 第1章 Shell和vi 1.1什么是shell 在計(jì)算機(jī)科學(xué)中硝拧,Shell俗稱殼,用來(lái)區(qū)別于Kernel(核)葛假,...
    福爾摩雞閱讀 921評(píng)論 0 1
  • 引 個(gè)人在iOS的開(kāi)發(fā)過(guò)程中障陶,經(jīng)常會(huì)用到第三方類庫(kù),而這些類庫(kù)大都是在GitHub上的聊训,不得不說(shuō)GitHub確實(shí)是...
    Cloudox_閱讀 1,492評(píng)論 0 2
  • 聲明:這篇文章來(lái)源于廖雪峰老師的官方網(wǎng)站抱究,我僅僅是作為學(xué)習(xí)之用 Git簡(jiǎn)介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 3,959評(píng)論 3 27
  • 一带斑、Git的簡(jiǎn)介 1.1.什么是git鼓寺?git是一款開(kāi)源的分布式版本控制工具,在世界上所有的分布式版本控制工具中,...
    IIronMan閱讀 1,787評(píng)論 0 12
  • 第一部分:Git的基本操作 初始化操作 $ git config -global user.name #設(shè)置提交...
    莊欲以莘閱讀 1,917評(píng)論 0 4