中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Git/Github

發布時間:2021-10-12 09:38:35 來源:億速云 閱讀:113 作者:iii 欄目:編程語言

這篇文章主要介紹“如何使用Git/Github”,在日常操作中,相信很多人在如何使用Git/Github問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用Git/Github”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

前言

Git 是一個開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟件支持。

下載與安裝

1.Windows/Mac OS版本下載 如何使用Git/Github 2.Linux中的安裝
yum install git (部分Linux系統自帶git)

Git初體驗

通過前面小節的學習,我們已經基本上知道了git是干什么的,以及git的下載和安裝等。
我們還想知道,git到底怎么去進行版本控制。
需求是:比如有一份文本文件,想要操作這個文本文件。我去不斷的修改這個文件的內容,每次修改之后,我需要記錄修改的歷史記錄。 如何使用Git/Github 在使用git進行版本管理之前,需要進行一個配置,這個配置是告訴git你的用戶名以及你的郵件賬號
如何使用Git/Github
小技巧:忘記命令的具體寫法時,可以進行Tab鍵進行提示。
?

Git學前知識

不妨先來畫圖 如何使用Git/Github

工作區就是你當前使用的一個目錄,比如“gupaogit”文件夾
版本庫就是add以及commit之后的亂七八糟的東西

使用git,步驟:
  1. 下載與安裝

  2. git config --global user.email/name

  3. git init 對一個文件夾目錄進行git初始化操作,這個初始化就是為了讓git對這個文件夾中的文件進行版本管理。
    如何使用Git/Github 初始化完成之后,在當前目錄下會有一個.git文件夾,這個文件夾就是我們所說的版本庫。
    現在就可以用git對其下的文件進行一個版本的控制,就是可以對它進行一個版本的回退,回到當前等等。

  4. 接下來你的操作就是
    無非在這個工作區或者倉庫中創建文件,然后對文件進行一系列修改操作之類的。
    Git的要求是,你要讓git幫你進行的版本的管理,必須先有一個文件夾,這個文件夾要被git進行初始化操作,這樣才能進行一個git的版本管理。

Git基礎操作

git status git add git commit 需求:在git工作區中新建一個文件,名稱為“gupao.txt”。
git status:表示查看git工作區(倉庫)中的一個狀態
(1)nothing to commit
如何使用Git/Github
(2)當你新建了一個文件之后 ,如1.txt 如何使用Git/Github Untracked files: 未被追蹤的文件
如何使用Git/Github
(3)當我們進行git add 1.txt之后
如何使用Git/Github
(4)當我們進行git commit -m 1.txt 之后
如何使用Git/Github 只有進入到提交區之后,我們的文件才能被git真正意義上管理起來
(5) 對應我們創建一個新文件的時候的狀態
git add:就是將工作區中的內容add到暫存區
git commit:將暫存區的內容commit到提交區

要想讓git對你的文件內容進行版本管理,必須經過兩個步驟,第一個是git add,第二個是git commit。 可以隨時隨地使用git status進行工作區中狀態的查看

Git log和版本切換

大家都知道git可以進行版本控制與管理。 如果你想要進行版本的切換的話,你需要知道的就是這個commitid,也就是說你要知道每一次提交的信息才可以,就要去查看這個每次的commitid是什么。

Git log 日志,也就是說查看git的日志信息
如何使用Git/Github

Commit Author :作者 就是你當初配置 git global --- user.name Date:提交的日期 根據每次的commitid進行一個版本的切換。 git reset --hard commitid(這個id可以根據git log查看日志信息去找到)

我覺得這樣打印出日志信息太多了,能不能簡化一下呢?

git log --pretty=oneline

補充的知識點: 我覺得我就是想要回退到上一個版本,今天修改了一些東西

直接回退到上一個版本 git reset --hard HEAD^ 回退到上一個版本 Git reset --hard HEAD^^ 回退到上上個版本

麻煩是,回退到之前的版本之后,最新的commitid沒了,如果你的之前的操作窗口有,你復制過來進行

重點是要找到最新的一個版本的commitid即可。 git reflog

如果進行版本回退之后,發現commitid最新的沒了,你可以使用git reflog進行所有的commitid的查詢。 ? 8 工作區暫存區和提交區 在工作區進行了修改,然后git status會有一個提示,告訴你下一步需要干嘛

正常的思維,你會進行git add 后悔當前的操作,git checkout -- gupao.txt 會撤銷工作區中的一個修改,也就是說你不需要進行git add操作了。

對于已經在暫存區的內容,使用git checkout -- gupao.txt 不可行了 git reset HEAD gupao.txt 回到提交區中的最新版本

接下來需要做的就是再次使用git checkout -- gupao.txt,將修改拉回到工作區,把工作區的修改內容清空 ? 9 初識分支

把每一次的提交,都用線連起來,你會發現,很連貫。

C/C++ 指針的概念

git reset --hard commitid HEAD 如果說內容已經add到暫存區,此時要想撤銷的話,需要先回到最新的一個commitid上 HEAD HEAD^ HEAD^^ HEAD就表示當前最新的版本的commitid,也就是最新的指針指向

Master分支是主分支,也是git為你默認創建的分支

一定就有其他分支

Master分支指向的是最新的提交commitid,頭指向指向的是我們的master分支。 但是git的強大之處遠不止如此,而是有一個多人協作開發的概念。 不僅是一個單人開發進行版本控制,同時可以多人協作開發進行一個版本控制。 就是通過git的分支進行的。 ? 10 詳解分支 在主分支master上切出一個開發分支,比如叫”dev_wang” git checkout -b dev_wang; 創建一個分支

現在你所有的操作都是在一個新的分支上進行。

剛才一系列的操作都是在dev_wang分支上進行了,現在再次切換到主分支 Git branch可以查看當前所有的分支情況,并且可以看到目前所處的分支(*)

在不同的分支上進行的版本管理,只有在自己的分支上才會生效。

HEAD的一個補充:HEAD頭指針指向的是當前分支最新的commitid

假設我們覺得一個分支沒啥用了,想要刪除該分支怎么辦呢?

現在所處的分支是dev_wang,想要刪除它的話,你必須在其他分支上。 這時候你只能強制性的刪除該分支 git branch -D dev_wang

? 11 分支合并和沖突解決 主分支master我們不會去動,只會用于版本的發布。 各自在自己的分支上開發完成之后,需要將開發的內容合并到主分支上去。這個時候成為merge。 需求:一個新的開發人員dev_zhang (1)git checkout -b dev_zhang; (2)進行文件的修改并且add,commit (3)此時在小張的分支上多了一個commitid,這時候需要把這個小張修改的內容進行版本的發布,就需要把小張的修改內容合并到master分支上。 切換到master分支,合并dev_zhang的開發內容 合并的操作:快速合并 在master分支上,git merge dev_zhang;

(4)git branch -d dev_zhang; //上一個小節我們這樣去做的時候,它有一個不能刪除的提示,這個提示是告訴你需要進行分支的合并。

當你的項目開發人員很多,2個,小張,小李,合作開發一個項目 需求:小張,小李合作開發一個項目,這個項目兩個人負責不同的模塊 小張:商品管理的模塊 小李:訂單管理的模塊 master分支作為一個版本發布的分支,不應該進行直接在上面開發 (1)git checkout -b dev_zhang (2)git checkout -b dev_li

(3)分別在小張和小李的分支上進行開發之后 發現master分支上并沒有小張小李的開發內容 (4)小張和小李的開發內容發布到master分支 分支的合并

合并的沖突的問題

需要手動解決沖突,并且再去進行add,commit的操作。 git checkout -b test

12 Git config和配置別名 在你剛裝完git的時候,老師讓你去配置了一個email name,只有這樣你才能使用git git config配置git的命令 git config -l 查看所有的配置信息

這里所有的信息實際上都是整合出來的,整合哪邊的呢? 倉庫級別,全局級別,系統級別 優先級是什么
所謂的倉庫級別的配置:當前倉庫級別下的.git>config文件 全局級別的:當前用戶之下表示的是全局級別的 系統級別:在我們的git安裝目錄下etc Git config --global --add user.name itcrazy2016 Git config --global --unset user.name 這個命令其實比較實用 Git status git add git commit Git log --pretty=oneline 這些命令太長了,能不能簡化? Git st 表示查看用戶狀態 Git cm 提交commit Git log one 查看一行信息? 配置別名? git config --global alias.st status 表示用st代表status。 ? 13 打標簽和忽略文件 打標簽: Commitid不容易記住,能不能用一種比較獨特的方式去記住每個版本 118.222.113.253 這樣訪問網站方便? www.baidu.com 域名訪問網站方便? Commitid as2731aa <------> 標簽 想要給最新版本的id打上一個標簽 -----git tag v1 將最新版本的commitid對應上v1 查看一下當前倉庫的標簽列表 git tag 給之前已經錯過的commitid去打上一個標簽,怎么操作? git tag v1pre d619d86 這個標簽你看起來還是不夠過癮,你也可以給這個標簽加上一個說明 Git tag v2.0 -m “這里打上了一個標簽” 就得能夠刪除標簽 git tag -d v1

忽略文件 創建了一個Person.class的類文件,發現git標注為Untracked file 未被追蹤的文件 Git add Person.class 肯定是可以的 我希望這個文件不能被git管理起來 能不能讓git將這個文件(這類文件)給忽略呢? .class git你不要幫我去管理.class的類文件 倉庫的根目錄下創建一個.gitignore 文件 這個規則你要讓git能夠看懂

告訴git讓他不要幫你去管理這個文件了

14 本地倉庫和遠程倉庫 假設主分支master已經存在,這時候多了一個開發人員,你怎樣給他一個分支? 每個人要至少在自己的電腦上進行開發? 而這個master分支僅僅用于版本的發布的。 用一臺公共的電腦作為一個遠程倉庫,供每個開發者使用,每個開發者可以去創建各自獨立的分支進行開發,開發完成之后,把各自的代碼推到遠程倉庫上。 局域網:一臺遠程倉庫 私有的公共倉庫 項目:很小,想要讓所有開發者都參與進來,那么就應該有這樣一臺公共的讓所有人都能訪問的遠程倉庫。同時這樣做的好處是:可以更加方便的管理開源代碼。 大家都一起使用的倉庫。

很顯然是存在,GitHub 國外的遠程倉庫 世界各地的開發者都可以在上面進行自己代碼的管理 碼云 國內的遠程倉庫

問題是,你把代碼放到他們上面,除非你交一些會員費,代碼才不能讓別人看見,不然你提交到你賬號上的代碼都公開的。 搭建自己的私有倉庫的話,讓別人不可見,怎么做呢?Gitlab

? 15 GitHub和碼云 Github 遠程倉庫 Gupaogit 本地倉庫

把本地倉庫gupaogit 上傳到github上去進行。 (1)在遠程倉庫github創建一個對應的項目比如gupaogit repository倉庫

16 操作遠程和本地倉庫 push,pull和clone。 git fetch:相當于是從遠程獲取最新版本到本地,不會自動merge 代碼的內容推送 ,將本地的內容推送到具體的遠程倉庫上 本地的gupaogit -----> github/碼云 gupaogit (1)要讓兩者有關聯 在本地倉庫中配置一下它和遠程倉庫的關系,它倆是一家人。 當前本地倉庫是否有遠程倉庫,如果有,那么它的遠程倉庫是什么? git remote 本地倉庫中:git remote add origin遠程倉庫的地址?git@github.com:itcrazy2016/gupaogit.git origin 本地倉庫和遠程倉庫的地址進行一個關聯
git push -u origin master 是推送代碼,那么就不是指定遠程倉庫。 這樣關聯之后,接下來就是把代碼推送到遠程倉庫上

(2)本地倉庫和遠程倉庫進行關聯之后,就可以進行的推送了 git push -u origin master 將本地倉庫的內容推送到遠程倉庫

無論是推送還是拉代碼,需要有這樣一個權限,也就是說你目前使用的這臺電腦是否安全,如果不安全,人家不會讓你去推送

【沒有權限的情況下】 需要添加權限 A. 需要在本地中生成一個ssh key ssh-keygen -t rsa -C "itcrazy2016@163.com" 在自己的計算中中增加一個安全ssh key 蓋上了一個章,就表示你這個電腦認證后的ssh_key B.需要把這個key告訴github/碼云 把公鑰放到ssh key

保證數據傳輸的一個安全性

如果說是在其他分支進行的修改,需要進行一個分支的合并 要推送其他分支的,指定一下要推送的分支即可git push -u origin dev_zhang;

新來了一個哥們,小王,需要進行一個開發 需要把遠程倉庫的代碼拉倒本地進行開發 (1)clone 克隆操作 前提是:sshkey也要添加完成 Git clone git@github.com:itcrazy2016/gupaogit.git

當遠程倉庫的版本內容如果和本地倉庫的內容不一致,需要先git pull,把遠程倉庫的內容拉下來到最新版本才行,然后進行手動解決沖突

到此,關于“如何使用Git/Github”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

古丈县| 衡水市| 喜德县| 大厂| 安乡县| 嫩江县| 贡觉县| 扶沟县| 吴堡县| 东阿县| 萨嘎县| 罗城| 余干县| 贺州市| 台南县| 林口县| 宜宾县| 视频| 惠安县| 石狮市| 罗田县| 绩溪县| 宁波市| 泰来县| 盘山县| 大名县| 察隅县| 平度市| 隆化县| 南投县| 邵东县| 潞城市| 琼海市| 扎兰屯市| 博湖县| 从化市| 柏乡县| 临沂市| 延安市| 奉贤区| 蕲春县|