git使用方法

目錄

1. 概念 4

1.1.四個工作區(qū)域 4

1.2.工作流程 4

1.3.文件的四種狀態(tài) 5

2. 四個區(qū)域常用命令 7

2.1.新建代碼庫 7

2.2.查看文件狀態(tài) 7

2.3. 工作區(qū)<-->暫存區(qū) 8

2.4.工作區(qū)<-->資源庫(版本庫) 8

2.5.遠程操作 9

2.6.其它常用命令 9

3 實際git在pycharm使用

1 概念

1.1 四個工作區(qū)域

Git本地有四個工作區(qū)域:工作目錄(Working Directory)、暫存區(qū)(Stage/Index)照捡、資源庫(Repository或Git Directory)莺丑、git倉庫(Remote Directory)形葬。文件在這四個區(qū)域之間的轉(zhuǎn)換關(guān)系如下:



? Workspace:工作區(qū),就是你平時存放項目代碼的地方

Index / Stage:暫存區(qū)板丽,用于臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息

Repository:倉庫區(qū)(或版本庫)兑凿,就是安全存放數(shù)據(jù)的位置,這里面有你提交到所有版本的數(shù)據(jù)茵瘾。其中HEAD指向最新放入倉庫的版本

? Remote:遠程倉庫礼华,托管代碼的服務器,可以簡單的認為是你項目組中的一臺電腦用于遠程數(shù)據(jù)交換

1.2 工作流程

git的工作流程一般是這樣的

1拗秘、在工作目錄中添加圣絮、修改文件;

2雕旨、將需要進行版本管理的文件放入暫存區(qū)域扮匠;

3捧请、將暫存區(qū)域的文件提交到git倉庫。

因此棒搜,git管理的文件有三種狀態(tài):已修改(modified),已暫存(staged),已提交(committed)

工作區(qū)-----》暫存區(qū)---》倉庫

1.3 文件的四種狀態(tài)

版本控制就是對文件的版本控制疹蛉,要對文件進行修改、提交等操作力麸,首先要知道文件當前在什么狀態(tài)可款,不然可能會提交了現(xiàn)在還不想提交的文件,或者要提交的文件沒提交上克蚂。

GIT不關(guān)心文件兩個版本之間的具體差別闺鲸,而是關(guān)心文件的整體是否有改變,若文件被改變埃叭,在添加提交時就生成文件新版本的快照摸恍,而判斷文件整體是否改變的方法就是用SHA-1算法計算文件的校驗和。


Untracked:未跟蹤, 此文件在文件夾中, 但并沒有加入到git庫, 不參與版本控制. 通過git add 狀態(tài)變?yōu)镾taged

untracked----->Staged:git add file(工作區(qū)-暫存區(qū))

unmodify----->untracked: git rm --cached file:移出版本庫(倉庫--->工作區(qū))

unmodify----->modified: 修改文件(暫存區(qū))

modified---->ummodify:取消修改游盲,git checkout file(工作區(qū)--->暫存區(qū))

modified------>staged--->unmodify(倉庫):git add file--->git commit,保存到倉庫

unmodify(倉庫)------>modified:git reset HEAD file误墓,從倉庫中取消暫存,放在暫存區(qū)


Unmodify:文件已經(jīng)入庫(版本庫), 未修改, 即版本庫中的文件快照內(nèi)容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改, 而變?yōu)镸odified.

如果使用git rm移出版本庫, 則成為Untracked文件

? Modified:文件已修改(工作區(qū)), 僅僅是修改, 并沒有進行其他的操作. 這個文件也有兩個去處, 通過git add可進入暫存staged狀態(tài),?

返回到unmodify狀態(tài), 這個git checkout即從庫中取出文件, 覆蓋當前修改

? Staged: 暫存狀態(tài)益缎,執(zhí)行git commit則將修改同步到庫中, 這時庫中的文件和本地文件又變?yōu)橐恢? 文件為Unmodify狀態(tài). 執(zhí)行g(shù)it reset HEAD filename取消暫存,文件狀態(tài)為Modified



新建文件--->Untracked

使用add命令將新建的文件加入到暫存區(qū)--->Staged

使用commit命令將暫存區(qū)的文件提交到本地倉庫--->Unmodified

如果對Unmodified狀態(tài)的文件進行修改---> modified

如果對Unmodified狀態(tài)的文件(倉庫)進行remove操作--->Untracked

2 四個區(qū)域常用命令

2.1 新建代碼庫

#在當前目錄新建一個Git代碼庫

git init

#新建一個目錄谜慌,將其初始化為Git代碼庫

git init [project-name]

#下載一個項目和它的整個代碼歷史

git clone [url]

2.2 查看文件狀態(tài)

#查看指定文件狀態(tài)

git status [filename]

#查看所有文件狀態(tài)

git status

2.3 工作區(qū)<-->暫存區(qū)

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

git add [file1] [file2] ...

#添加指定目錄到暫存區(qū),包括子目錄

git add [dir]

#添加當前目錄的所有文件到暫存區(qū)

git add .

#當我們需要刪除暫存區(qū)或分支上的文件, 同時工作區(qū)也不需要這個文件了, 可以使用

git rm file_path

#當我們需要刪除暫存區(qū)或分支上的文件, 但本地(工作區(qū))又需要使用, 這個時候直接push那邊這個文件就沒有莺奔,如果push之前重新add那么還是會有欣范。

git rm --cached file_path

2.4 暫存區(qū)---版本庫

#將暫存區(qū)-->資源庫(版本庫)

git commit -m '該次提交說明'

#加了【分支名】 +文件名? 則表示從分支名為所寫的分支名中拉取文件 并覆蓋工作區(qū)里的文件

git checkout 分支名 文件名

#移除不必要的添加到暫存區(qū)的文件

git reset HEAD 文件名

#去掉上一次的提交(會直接變成add之前狀態(tài))?

git reset HEAD^

#去掉上一次的提交(變成add之后,commit之前狀態(tài))

git reset --soft? HEAD^

2.5 遠程操作

#取回遠程倉庫的變化令哟,并與本地分支合并

git pull

#上傳本地指定分支(資源庫)到遠程倉庫

git push 遠程倉庫url地址

2.6 其它常用命令

#顯示當前的Git配置

git config --list

#編輯Git配置文件

git config -e [--global]

#初次commit之前恼琼,需要配置用戶郵箱及用戶名,使用以下命令:

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

3 實際git在pycharm使用

1配置用戶信息:必須的操作

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

to set your account's default identity.

Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'yujian01@gongyun.(none)'

在pycharm下的command運行

git config –global user.email? “yujian01@gongyun.(none)

git config –global user.name “yujian01”

2在 terminal終端使用

git init:初始化git項目目錄

git add . : 添加所有文件到變更列表(注意有個點)

git commit -m "首次提交":

git remote add origin https://github.com/yujian-001/yujian.git:首次提交需要關(guān)聯(lián)遠程倉庫,origin--起源屏富,給一個遠程服務器的路徑

git push -u origin master:推送到遠端(origin)master分,頁面會彈出Git登陸頁面晴竞,此時需要輸入用戶名和密碼

git push https://github.com/yujian-001/yujian.git:后面在提交,直接將文件上傳到遠程倉庫(上傳)

git clone https://github.com/yujian-001/yujian.git:克隆文件狠半,將git遠程倉庫的文件克隆到本地工作目錄(任意的路徑)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末噩死,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子神年,更是在濱河造成了極大的恐慌已维,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件已日,死亡現(xiàn)場離奇詭異垛耳,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門堂鲜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栈雳,“玉大人,你說我怎么就攤上這事泡嘴「Χ鳎” “怎么了逆济?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵酌予,是天一觀的道長。 經(jīng)常有香客問我奖慌,道長抛虫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任简僧,我火速辦了婚禮建椰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘岛马。我一直安慰自己棉姐,他們只是感情好,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布啦逆。 她就那樣靜靜地躺著伞矩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夏志。 梳的紋絲不亂的頭發(fā)上乃坤,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音沟蔑,去河邊找鬼湿诊。 笑死,一個胖子當著我的面吹牛瘦材,可吹牛的內(nèi)容都是我干的厅须。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼食棕,長吁一口氣:“原來是場噩夢啊……” “哼朗和!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宣蠕,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤例隆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抢蚀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镀层,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了唱逢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖痪枫,靈堂內(nèi)的尸體忽然破棺而出奶陈,到底是詐尸還是另有隱情,我是刑警寧澤潦俺,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布事示,位于F島的核電站肖爵,受9級特大地震影響檐涝,放射性物質(zhì)發(fā)生泄漏谁榜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一帝蒿、第九天 我趴在偏房一處隱蔽的房頂上張望巷怜。 院中可真熱鬧,春花似錦绣张、人聲如沸关带。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嗦明,卻和暖如春娶牌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乘凸。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留壹罚,地道東北人猖凛。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓辨泳,卻偏偏與公主長得像玖院,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子难菌,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

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

  • 常用開發(fā)工具類和自定義view遇绞,無恥的求個star:https://github.com/AbrahamCaiJi...
    想你依然心痛閱讀 882評論 0 3
  • 程序員開發(fā)一個項目摹闽,版本控制工具是必不可少的褐健,常見的有SVN和Git等。前面我已經(jīng)對SVN有了介紹,這里貼一下地址...
    NeWolf閱讀 3,342評論 0 4
  • 使用Git已有很長一段時間倘屹,遇到一些痛點問題银亲,而且大都是網(wǎng)上難以直接查到的纽匙,故總結(jié)于此务蝠。 1.兩幅重要的圖 以上兩...
    承羿閱讀 1,941評論 0 8
  • Git使用方法 本文源于公眾號【一個程序員的日持虻蓿】本文僅作為個人筆記使用 原文鏈接 版本控制工具Git怎么使用馏段??...
    Elizabath丶閱讀 236評論 0 0
  • 這篇文章主要是自己記一些筆記践瓷,git的命令實在是太多了院喜,有些不常用的命令晕翠,不用就會忘記。所以歸納了下硫麻,整理一套自己...
    L是個小碼農(nóng)閱讀 726評論 0 1