git基礎(chǔ) (1):git基本用法

一、創(chuàng)建git倉庫

# 將當(dāng)前目錄初始化為git倉庫导梆,等價于:git init .
$ git init

$ git init repo-dir  # 將指定的目錄初始化為git倉庫 (如果指定的目錄不存在,則創(chuàng)建)


二看尼、創(chuàng)建分支狡忙、添加內(nèi)容、提交內(nèi)容

$ git branch -l # 列出所有存在的分支 (本地)
$ git branch -a # 列出所有分支 (本地和遠(yuǎn)程)

# 剛創(chuàng)建的倉庫沒有任何分支窜觉,第一次執(zhí)行 "git add something" 后禀挫,會生成一個分支master分支语婴,但是并未正則創(chuàng)建砰左,第一次commit提交后會真正的創(chuàng)建master分支缠导。
# 創(chuàng)建個文件并輸入一點(diǎn)內(nèi)容 "vim hello.c" 輸入一點(diǎn)內(nèi)容
$ git add hello.c   # 向當(dāng)前分支添加文件
$ git add . # 添加當(dāng)前目錄下的所有文件 (包括當(dāng)前目錄下的子目錄中的文件)
$ git status # 查看當(dāng)前狀態(tài) (會有 On branch master僻造,此時用 git branch -l查看孩饼,還是沒有任何分支)
$ git commit -m "添加第一個文件" # 此時已經(jīng)生成了第一個分支:master (此時執(zhí)行 "git branch -l" 可以看到master分支了)

$ git branch   # 查看當(dāng)前位于哪個分支上

$ git branch new-branch-name # 創(chuàng)建一個分支镀娶,如果new-branch-name已經(jīng)存在汽畴,則報(bào)錯。
# tips:git branch branch-name鲁猩,
# 1. 是基于當(dāng)前分支創(chuàng)建新的分支,branch_name分支 與 當(dāng)前所在分支的內(nèi)容一樣搅窿。
# 2. 只是創(chuàng)建一個新分支男应,并不會切換沐飘。

$ git branch -d test # 刪除本地分支 test牲迫。

# 切換分支
$ git checkout branch-name # 切換分支
$ git checkout -b new-branch-name # 創(chuàng)建并切換分支

$ git log   # 查看當(dāng)前分支的提交記錄


三盹憎、將本地git倉庫陪每,上傳到 gitee 或 github

在github上創(chuàng)建一個倉庫檩禾,并配置SSH key锌订。(如何在github上創(chuàng)建倉庫画株,以及如何配置SSH key谓传,請自行百度)

# 將本地倉庫與github上的倉庫關(guān)聯(lián)起來
# git remote add origin https://github.com/phoenix19900219/jni-demo.git
$ git remote add origin https://gitee.com/stone100/jni-demo.git

############################################
############################################
# 由于github抽風(fēng), 下面這段不是正常流程 (后面改用gitee)
$ git pull   # pull前需要把當(dāng)前分支與遠(yuǎn)程分支關(guān)聯(lián)起來续挟,另外要使用--rebase來合并本地與遠(yuǎn)程的內(nèi)容诗祸,避免遠(yuǎn)程分支的內(nèi)容把本地內(nèi)容給覆蓋了
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), 4.70 KiB | 687.00 KiB/s, done.
From https://github.com/phoenix19900219/jni-demo
 * [new branch]      main       -> origin/main
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> master


# github上創(chuàng)建git倉庫時,創(chuàng)建的默認(rèn)分支是main
$ git branch -a  # 發(fā)現(xiàn)了一個遠(yuǎn)程分支:remotes/origin/main
* master
  remotes/origin/main

# 創(chuàng)建一個main分支并切換到main分支上
$ git checkout -b main

# 將當(dāng)前分支與遠(yuǎn)程分支關(guān)聯(lián)起來
$ git branch --set-upstream-to=origin/main

$ git pull --rebase 

$ git remote  # 查看關(guān)聯(lián)的遠(yuǎn)程倉庫有哪些
$ git remote remove origin # 刪除遠(yuǎn)程倉庫
############################################
############################################

# 拉取遠(yuǎn)程倉庫origin上的master分支怀樟,并與當(dāng)前分支合并
$ git pull --rebase origin master


# git push 命令的格式如下:
# git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>

# git push # 如果只有一個遠(yuǎn)程主機(jī)(遠(yuǎn)程倉庫)往堡,那么遠(yuǎn)程倉庫可省略虑灰,默認(rèn)的本地分支為當(dāng)前分支穆咐,默認(rèn)的遠(yuǎn)程分支為本地分支所關(guān)聯(lián)的那個分支庸娱。


# 本地分支如何關(guān)聯(lián)遠(yuǎn)程分支??
$ git branch -a   # 列出本地和遠(yuǎn)程分支熟尉,輸出如下:
* master
  remotes/origin/master

$ git branch -u remotes/origin/master # 將當(dāng)前分支與遠(yuǎn)程分支remotes/origin/master關(guān)聯(lián)起來

# git branch 的參數(shù):
#    -u, --set-upstream-to <upstream>
#                          change the upstream info
#    --unset-upstream      unset the upstream info
# 說明:
# -u, --set-upstream-to  設(shè)置當(dāng)前分支關(guān)聯(lián)的遠(yuǎn)程分支
# --unset-upstream       取消當(dāng)前分支關(guān)聯(lián)的遠(yuǎn)程分支

# remote倉庫如果是多個則需要指明
# git push origin             # 指明remote倉庫為origin
# git push origin master      # 指明遠(yuǎn)程倉庫和遠(yuǎn)程分支
$ git push origin master:remotes/origin/master # 指明遠(yuǎn)程倉庫, 本地分支, 遠(yuǎn)程分支


四斤儿、從github上clone一個項(xiàng)目到本地

# git clone 遠(yuǎn)程倉庫名
# 如:
$ git clone https://gitee.com/stone100/jni-demo.git


五往果、把遠(yuǎn)程倉庫內(nèi)容更新到本地

# 1. 關(guān)聯(lián)遠(yuǎn)程倉庫
$ git remote add orgin <remote-repo-url>

# 2. 關(guān)聯(lián)某個遠(yuǎn)程倉庫的某個分支
$ git branch -u remote-branch-name # 可以使用 "git branch -a" 查看遠(yuǎn)程分支的名稱

# 3. 拉取并合并
$ git branch --rebase origin master
# 當(dāng)然陕贮,你也可以使用 git fetch + git merge 的方式肮之,來實(shí)現(xiàn)更新同步戈擒。

# 關(guān)于:rebase 和 merge 的區(qū)別:
# https://www.cnblogs.com/kevingrace/p/5896706.html


六艰毒、總結(jié)

在本地建立一個git倉庫并推送到gitee或github上的流程:

# 1. 初始化git倉庫
$ git init git-demo

# 2. 添加一點(diǎn)東西 并 提交
$ git add hello.cpp
$ git commit -m "第一提交"

# 3. 在gitee 或 github 上創(chuàng)建一個repository

# 4. 將本地倉庫與gitee或github上的倉庫關(guān)聯(lián)起來
$ git remote add origin https://gitee.com/stone100/jni-demo.git

# 5. 把當(dāng)前分支與遠(yuǎn)程倉庫的分支關(guān)聯(lián)起來
$ git branch -u remotes/origin/master # 使用 "git branch -a" 來查看遠(yuǎn)程分支的名稱

# 6. 拉取遠(yuǎn)程分支內(nèi)合并到本地分支
$ git pull --rebase origin master

# 7. 將本地內(nèi)容推送到遠(yuǎn)程倉庫
$ git push origin master:remotes/origin/master


七柑土、更多高級用法:

https://gitee.com/stone100/git-demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末幌缝,一起剝皮案震驚了整個濱河市诫欠,隨后出現(xiàn)的幾起案子荒叼,更是在濱河造成了極大的恐慌,老刑警劉巖坏晦,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蜓斧,居然都是意外死亡挎春,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脚线,“玉大人邮绿,你說我怎么就攤上這事∫凰溃” “怎么了傻唾?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵伪煤,是天一觀的道長抱既。 經(jīng)常有香客問我扁誓,道長蝗敢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮讶泰,結(jié)果婚禮上痪署,老公的妹妹穿的比我還像新娘。我一直安慰自己浦夷,他們只是感情好劈狐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布肥缔。 她就那樣靜靜地躺著续膳,像睡著了一般坟岔。 火紅的嫁衣襯著肌膚如雪摔桦。 梳的紋絲不亂的頭發(fā)上承疲,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天燕鸽,我揣著相機(jī)與錄音啊研,去河邊找鬼党远。 笑死富弦,一個胖子當(dāng)著我的面吹牛舆声,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碱屁,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼擅耽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碰声?” 一聲冷哼從身側(cè)響起熬甫,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤瞻颂,失蹤者是張志新(化名)和其女友劉穎郑象,沒想到半個月后厂榛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丽惭,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡正歼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了喜爷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檩帐。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡湃密,死狀恐怖泛源,靈堂內(nèi)的尸體忽然破棺而出忿危,到底是詐尸還是另有隱情铺厨,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布赃磨,位于F島的核電站邻辉,受9級特大地震影響恩沛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜雷客,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一搅裙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧娜汁,春花似錦掐禁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽响鹃。三九已至买置,卻和暖如春萤衰,著一層夾襖步出監(jiān)牢的瞬間脆栋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工怕膛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留褐捻,地道東北人柠逞。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓板壮,卻偏偏與公主長得像绰精,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子卿樱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

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

  • 前言 每次換電腦的時候老是遇到一些git的“bug”繁调,所以這次決定整理一下git的基礎(chǔ)的用法涉馁,希望也能對小伙伴們有...
    墨塵_7閱讀 209評論 0 1
  • 主要是基于廖雪峰官網(wǎng)git教程的學(xué)習(xí)筆記;感謝大佬們的分享糠悯,努力做一個海邊拾貝的boy~ 0妻往、背景 Git是目前世...
    小貝學(xué)生信閱讀 131評論 0 0
  • Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng),也是當(dāng)下最流行的版本控制纫普,不管是IT行業(yè)昨稼,還是小說家等等拳锚,使用了Gi...
    程序猿在廣東閱讀 1,232評論 2 14
  • git安裝好后的配置用戶信息命令git config --global user.name "賬戶名"git co...
    guyigg閱讀 996評論 0 1
  • 查看用戶名和郵箱地址: $ git config user.name $ git config user.emai...
    篆刻bug閱讀 172評論 0 1