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

溫馨提示×

溫馨提示×

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

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

git與github

發布時間:2020-07-26 15:12:34 來源:網絡 閱讀:408 作者:xxxpjgl 欄目:web開發

一、git:一個免費的并且開源的分布式版本控制系統
版本控制:保留文件中修改的歷史記錄,可以方便的撤銷||恢復之前對文件的操作修改。
版本控制帶來的好處:
a.不小心刪除文件,可以通過記錄找回
b.產品經理反反復復讓你修改的時候,可以通過版本控制輕松反復
c.清楚了解自己最近處理過哪些部分
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
git config命令的--global參數,用了這個參數,表示你這臺機器上所有的Git倉庫都會使用這個配置
分布式版本控制:
單人開發項目的時候,我們可能為了方便,公司一臺,家里一臺,這時候我要使用同一個倉庫進行記錄。
我們可以選擇使用U盤、網盤等存儲設備進行拷貝。
但是一旦項目龐大,我們就這樣的方式就很麻煩了,而且極有可能產生各種沖突問題。
分布式和集成式的對比:
集成式:
直接連通中央倉庫,由中央倉庫存儲操作記錄及項目代碼,比如SVN
需要連接中央倉庫、需要網絡
記錄保存在中央倉庫,一旦中央倉庫內的記錄丟失,沒有備份
分布式:
在每個人的電腦上都有一個.git本地倉庫,操作記錄保存在本地,如GIT
可無網絡辦公,等有網絡再推送遠程倉庫
通過對比我們可以看出分布式版本控制,對于工作環境要求限制更少,對資料的保護性更好,不容易丟 失。所以越來越多的人拋棄SVN,走上了Git的道路
Github就充當了我們說的中央倉庫。
當然在這里我們需要的只是中央倉庫,這個倉庫也可以Coding 、gitlab、Bitbucket 等等。

二、github:一個專門托管代碼并且實現版本控制的軟件,git比github早出現了3年,為開源項目免費提供Git存儲

三、git的入門命令,使用Git Bash操作命令行
(1)、git init:初始化本地倉庫;,通過git init命令把這個目錄變成Git可以管理的倉庫
通過這個命令,可以創建一個本地.git倉庫,.git文件(默認是隱藏文件)
.開頭的文件是隱藏文件,所以需要設置讓其出現
touch a.txt //創建a.txt文件
git status:查看當前倉庫所在目錄的文件狀態
git與github
on branch master:在哪個分支上
no commits yet:還沒有提交過
untracked files:當前的這個文件是沒有被追蹤的,git當它是不存在的,通過命令:
(2)、git add a.txt:來將這個文件提交給git,告訴倉庫,這是我需要你管理的東西。add是添加文件下所有的文件
通過這樣的方式,我們可以把文件/文件夾托管給git
git與github
(3)、git commit
把文件/文件夾托管給倉庫后,我們不能像編輯器一樣,什么都讓倉庫進行記錄,所以在這里,
我們采用主動提交的方式,去提交我們希望Git倉庫記錄的操作。
git commit
如果你是第一次進行提交,你會發現提交失敗
因為Git除了需要你主動提交以外,還需要記錄當前是誰提交的
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
在全局下設置用戶email和name,只需要設置一次,后期提交的時候,會自動讀取配置信息
git config --global -l 獲取設置的郵箱和用戶名
git與github
進入了vim編輯器,出現這種情況是因為,需要在commit的時候附帶一個信息,描述你提交是做了什么的描述文字。按住i進入文字編輯插入模式 => 在最上面輸入本地提交的描述信息
git與github
然后按下esc退出編輯插入模式 => 按下ZZ(大寫)保存退出。
(4)、git log:查看已經提交的文件信息,所有批次的提交信息,按q退出,然后再接著輸入命令
git與github
git log --pretty=oneline
git log --pretty=format:"%H %h"
通過git log 哈希值:可以只查看某一次的提交信息
git log -p:查看最近一次的提交信息,同時顯示diff的信息,詳細信息的打印
git log -2:只打印2條信息
以上操作都是操作本地倉庫,untracked files不用管它
每次操作:
首先git status,查看文件狀態,看看哪些文件修改了
然后git add,將修改文件提交到暫存區,
git add . 將本地倉庫全部文件提交到暫存區
然后 git cimmit -m 描述文字,提交到本地倉庫
以上操作步驟,缺一不可。
不過可以簡寫命令行:git commit -a -m '描述文字'(只有在文件是已經暫存的情況下才可以使用簡寫命令操作,untracked files是不可以直接使用簡寫命令行的,需要先add,然后commit,分開來)
(5)、git rm ‘文件名’:刪除文件
git rm a.txt
git commit -m 刪除a文件
☆如果文件在暫存區,也就是git add .,但是還沒有git commit,那么是不允許刪除該文件的,如果確實要刪除,那么 :
git rm -f c.txt //強制刪除
git commit -m 刪除c文件
☆如果想把文件從git倉庫刪除,但是保留本地工作目錄中的文件,也就是該文件從git倉庫的文件變成了untracked files文件
git rm --cache a.txt
git commit -m 刪除a文件
要想再次提交該文件到git倉庫,先git add .,然后git commit -m 提交a文件
(6)、移動文件
新建文件夾:mkdir reci //創建了一個文件夾
git mv a.txt reci/a.txt //將a文件移動到reci文件夾下面
git add .
git commit -m 移動a文件到reci文件夾下
(7)、git status:打印文件狀態(未追蹤、已修改、已暫存)
git status -s = git status --short 簡化文件狀態打印內容
git與github

             **(8)、git diff**:查看文件修改了哪些地方 (主要看工作區文件)
                                     只在文件已經被修改,但是還未add的情況下,可以查看,如果已經add就不可以查看修改的情況了
                                     git diff --staged:查看暫存區和提交區域之間的差異 

            ** (9)、git reset**:返回文件到之前的版本
                             git reset --hard HEAD^  //返回上一個版本
                             git reset --hard HEAD^^  //返回上上一個版本
                             git reset --hard HEAD~·100  //返回往上100個版本
                             回退到未來的版本
                             git reset --hard d93ccfb4a9f6a5971c4a2481f927202a4cf66d49  //對應版本的哈希值
             **(10)、git reflog**用來記錄你的每一次命令,找到對應修改的commit id
                             穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。
                             要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。
            **(11)、創建SSH Key**
                            C:\Users\xiaoxiao\.ssh   這就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
            **(12)、push提交代碼到github**
                            git push origin master,把本地master分支的最新修改推送至GitHub。
                **(13)、從遠程庫clone到本地庫**
                git clone git@github.com:yourname/gitskills.git
                **(14)、常用命令行**
                $ pwd :(print working directory) 查看當前所在路徑--絕對路徑
                $ ls:(list) 查看當前目錄下的內容
                $ mkdir(make directory) 創建目錄
                $ touch 創建文件
                $ cat 查看文件內容(一次性將內容全部顯示)
                $ q 退出
                $ clear 清屏
            **(15)、分支管理**
            在Git里,主分支,即master分支
            HEAD嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是當前分支。每次提交,master分支都會向前移動一步,這樣,隨著你不斷提交,master分支的線也越來越長;
            當我們創建新的分支,例如dev時,Git新建了一個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表示當前分支在dev上。
            不過,從現在開始,對工作區的修改和提交就是針對dev分支了,比如新提交一次后,dev指針往前移動一步,而master指針不變。
            假如我們在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最簡單的方法,就是直接把master指向dev的當前提交,就完成了合并。
            并完分支后,甚至可以刪除dev分支。刪除dev分支就是把dev指針給刪掉,刪掉后,我們就剩下了一條master分支。
            Git鼓勵大量使用分支:
            查看分支:git branch
            創建分支:git branch name
            切換分支:git checkout name
            創建+切換分支:git checkout -b name
            合并某分支到當前分支:git merge name
            刪除分支:git branch -d name
** (16)、錯誤集結**
            (a)。*git add readme.txt報錯 pathspec 'readme.txt' did not match any files*
             說明在本地目錄里沒有這個文件。
            解決辦法 
            1.手動創建一個文件 readme.txt
            2.然后再使用git命令創建這個文件,命令為:$ touch readme.txt
            3.$ git add readme.txt,不用管該文件路徑

**17、提交對象**

git與github
18、創建分支
git與github
git與github
git與github
git branch:查看當前所在的分支
git branch branch2:創建分支branch2
git checkout branch2:切換分支到branch2
git checkout -b branch2:合并操作,開分支并且切換到新分支

四、上傳文件到github—遠程倉庫
1、首先新建倉庫
git與github
倉庫名稱、倉庫信息描述、公開還是私有、初始化一個readme文件、add .gitignore、add a license等等
2、新倉庫創建完畢之后,會看到以下提示信息
git與github
2.1、git ssh原理以及與https的區別
HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼【輸入密碼時git bash不會顯示密碼】;
SSH:clone的項目你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置SSH key的時候設置了密碼,則需要輸入密碼的,否則是不需要輸入密碼的,推薦使用SSH密鑰,誰想要參與當前項目的開發,就添加誰的SSH密鑰
2.2、在git中使用SSH Key的步驟:

檢查電腦是否存在SSH Key:
$ cd ~/.ssh
$ ls

如果存在id_rsa.pub 或 id_dsa.pub 文件,說明文件以及存在,跳過創建SSH Key步驟。

創建SSH Key
$ ssh-keygen -t rsa -C "your_email@example.com"
return后(出現如下命令)會讓你輸入push時的密碼(不是git登錄密碼),一般推薦濾過,直接按enter:

Generating public/private rsa key pair.

出現如下命令說明SSH Key創建成功了:

復制代碼

Your identification has been saved in /Users/shenheping/.ssh/id_rsa.
Your public key has been saved in /Users/shenheping/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:sodR52iO2z6KZOaHjElmjlGtTu8UbiZ2p+KXma4Rums shpyoucan@163.com
The key's randomart image is:
+---[RSA 2048]----+
. . .
. . . +
.... o S .
..o . O
.X+=X== o
.E%O+.+.
+oo**.ooo.

+----[SHA256]-----+

查看SSH Key:
$ cat ~/.ssh/id_rsa.pub

將查看的SSH Key賦值到git中設置好。

測試SSH Key:
$ ssh -T git@git.oschina.net

出現Welcome to XXX就可以了。

3、push本地文件到遠程倉庫
遠程倉庫的名稱默認是origin,origin中有單獨的master和HEAD分支,和本地倉庫中的HEAD或master并非一致

git push 提交到遠程倉庫
git clone 克隆項目到本地,從無到有的過程 git https://github.com/xiaoxiao529/javascript-note.git
拉取的都是master分支上的內容
git pull 拉取 本地有遠程項目,然后同事對遠程項目又做了新的修改,就需要git pull,如果和本地的有沖突,就需要解決沖突

github上,創建新倉庫,直接創建,不要點Initialize this repository with a README前面的選擇框
git與github
創建.gitignore文件,里面寫上規則,第一步!!如果是vue-cli,那么不用手動創建,已經創建好了。反正就是創建github倉庫的時候,不要勾選初始化README文件!!
git add .
git commit -m 'webpack-word' 提交到暫存區不能少
git remote add origin git@github.com:xiaoxiao529/webpack-work.git
git push -u origin master 提交到遠程倉庫origin的master分支—主分支

★本次上傳了node_modules到github,要避免上傳,可以在目錄下創建.gitignore文件,里面填寫忽略的上傳文件

.DS_Store
node_modules/
/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln

最后需要強調的一點是,如果你不慎在創建.gitignore文件之前就push了項目,那么即使你在.gitignore文件中寫入新的過濾規則,這些規則也不會起作用,Git仍然會對所有文件進行版本管理。
簡單來說,出現這種問題的原因就是Git已經開始管理這些文件了,所以你無法再通過過濾規則過濾它們。因此一定要養成在項目開始就創建.gitignore文件的習慣,否則一旦push,處理起來會非常麻煩。

五、github上 watch star fork的作用

  • star 的作用是收藏,目的是方便以后查找。
  • watch 的作用是關注,目的是等作者更新的時候,你可以收到通知。
  • fork 的作用是參與,目的是你增加新的內容,然后 Pull Request,把你的修改和主倉庫原來的內容合并。
向AI問一下細節

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

AI

连山| 武强县| 金平| 兴城市| 磴口县| 中牟县| 阳西县| 泰顺县| 拉萨市| 郸城县| 高平市| 盐亭县| 乌拉特前旗| 庆城县| 忻州市| 罗甸县| 栾城县| 武穴市| 萝北县| 泰和县| 罗平县| 洛隆县| 怀远县| 上犹县| 湖北省| 株洲市| 沂南县| 连江县| 文登市| 高州市| 韶山市| 杨浦区| 瑞金市| 彰化县| 镇安县| 陆河县| 诸城市| 阳信县| 乌苏市| 开阳县| 吉林省|