git:記錄學習git,並用git把本地的項目放到github上

1、學習步驟

由於我用的是win7的系統,因此下面我用win7來演示我學習和使用git的過程
  1. 下載git.exe( https://git-scm.com/download/win ) ,並安裝
    鼠標在任意空白處右鍵,出現git gui heregit bash here出現這兩個選項說明已經安裝成功。
  2. 兩種使用githtml

    - **本地沒有項目**

進入你以前安裝git的目錄,找到git-bash.exe文件,打開它,如圖:
clipboard.png
輸入如下兩段命令:node

$ git config --global user.name "Your Name" 
$ git config --global user.email "email@example.com"

而後咱們開始建立目錄git

/*
如下步驟其實就至關於在你安裝git的目錄裏,
建立了一個名叫htest的文件夾,
並進入到htest文件夾中。
*/

$ mkdir htest       //建立名爲htest的文件夾
$ cd hest           //進入htest文件夾裏
$ pwd               //顯示當前目錄
/htest

clipboard.png

- **本地已有項目**

直接在你已有的項目處,鼠標右擊,選擇 git bash here會彈出一個對話框。以下:
clipboard.pnggithub

2、實踐出真理

如下我拿本身的項目開始實踐,把項目git到github上。
  1. 老生常談註冊github帳號,這個很少講了。地址:https://github.com/
  2. 在github上建立庫,這一步跟我在本章中的主題不符,就多不講了。
  3. 複製須要提交到github上的地址。
  4. 完事具有,開搞了。

首先,我在本地建立了一個空文件夾,而後鼠標在空白處右擊點擊git bash here 出現黑色對話框。
clipboard.png緩存

在對話框裏輸入git clone 你在github上的項目地址,ok,我在github上的項目,已經下載到個人本地了。
clipboard.pngbash

能夠打開以前建立的test文件夾,而後你會發現文件夾裏出現了一個文件夾,這個文件夾的命名和你在github上的命名一致。
clipboard.png服務器

把你要上傳的文件複製到這個文件夾裏。
clipboard.pngapp

如今回到git界面,使用git status查看你當前目錄裏的文件狀態。
clipboard.pngssh

使用git add .把該目錄下的全部文件添加到倉庫。
clipboard.pngide

git commit把項目提交到庫。 -m後面引號裏面是本次提交的註釋內容,這個能夠不寫,但最好寫上,否則會報錯。
clipboard.png

這裏有兩個操做,若是你的github是一個新的庫,那須要執行這段命令:git push -u origin master若是你的github是一箇舊庫,那就能夠執行這段命令git push origin master區別新老庫的方法就是看你的github庫裏面是不是空的,若是是就是新的,相反就是舊的。
clipboard.png

ok到了這一步,已經完成了將本地項目上傳到Github的整個過程。
clipboard.png

Git經常使用命令

網上搜的git的經常使用命令

請確保已經安裝裏git客戶端 通常配置 git --version //查看git的版本信息 git
config --global user.name //獲取當前登陸的用戶 git config --global user.email
//獲取當前登陸用戶的郵箱 登陸git /* 若是剛沒有獲取到用戶配置,則只能拉取代碼,不能修改
要是使用git,你要告訴git是誰在使用*/

git config --global user.name 'userName'
//設置git帳戶,userName爲你的git帳號, git config --global user.email 'email'
建立一個文件夾 mkdir nodejs //建立文件夾nodejs cd nodejs //切換到nodejs目錄下
初始化git倉庫 git init //在nodejs文件夾下初始化一個倉庫,此時文件裏會到一個.git的隱藏文件夾

建立忽略文件 touch .gitignore //不須要服務器端提交的內容能夠寫到忽略文件裏

/*
    .git
    .idea
*/ 查看目錄 ls -al 建立文件並寫入內容 若是文件不存在則會建立文件

echo "hello git"

index.html //將'hello git' 寫入到index.html中 單個>箭頭表示寫入, >>表示追加

查看文件內容 cat index.html 增長到暫存區中 git add index.html git add -A
//所有添加到緩存區 增長到版本庫中 git commit -m '備註信息' 查看版本 git log --oneline 比較差別
比較的是暫存區和工做區的差別

git diff 比較的是暫存區和歷史區的差別

git diff --cached 比較的是歷史區和工做區的差別(修改)

git diff master 撤回內容 (若是修改了工做區的文件後發現改錯了,能夠用暫存區或者版本庫裏的文件替換掉工做區的文件)
用暫存區中的內容或者版本庫中的內容覆蓋掉工做區

git checkout index.html 取消增長到暫存區的內容(添加時) git reset HEAD index.html
//顯示目錄的狀體 有沒有添加或者修改文件

git status 刪除本地文件 rm fileName 刪除暫存區 保證當前工做區中沒有index.html

git rm index.html --cached 使用--cached 表示只刪除緩存區中的內容

回滾版本 回滾最近的一個版本 git log

git reset --hard HEAD/commit_id 回滾到將來 git reflog 分支管理 建立分支 git branch
dev 切換分支 git checkout dev 建立分支並切換分支 git checkout -b dev 刪除分支 git
branch -d dev 在分支上提交新的版本 git commit -a -m 'dev1' 合併分支 git merge dev
分支的合併後顯示log git log --oneline --graph --decorate
在分支開發的過程當中遇到其餘問題須要切換其餘分支 保留寫好的內容在切換到主幹 保留內容

git stash 在次切換分以後須要應用一下保留的內容 git stash apply 丟掉保存的內容 git stash drop
使用並丟掉 git stash pop 最佳分支
-有的時候開發須要合併指定的內容,而不是合併全部的提交,因此咱們須要挑選最好的,本身生產版本

合併分支把樹杈掰到主幹上 git rebase 添加遠程的倉庫 push -u
-u參數 upstream

git push origin master -u //獲取最新代碼 鏈接遠程倉庫 git remote add origin
倉庫的地址 查看遠程倉庫 git remote -v 刪除遠程倉庫 git remote rm origin

git經常使用命令 安裝及配置: Ubuntu下安裝:sudo apt-get install git 配置用戶名:git config
--global user.name "你的名字" 配置e-mail:git config --global user.email "你的郵箱@xx.com"

與添加有關的: 將當前目錄變爲倉庫:git init 將文件添加到暫存區:git add 文件名 [可選:另外一個文件名]
將暫存區提交到倉庫:git commit –m "描述"

與查詢有關的: 查詢倉庫狀態:git status 比較文件差別(請在git add以前使用):git diff 文件名
查看倉庫歷史記錄(詳細):git log 查看倉庫歷史記錄(單行):git log --pretty=online 或 git log
--online 查看全部版本的commit ID:git reflog

與撤銷有關的: 撤銷工做區的修改:git checkout -- 文件名 撤銷暫存區的修改:git reset HEAD 文件名
回退到歷史版本:git reset --hard 該版本ID 回退到上個版本:git reset --hard HEAD^
上上版本是HEAD^^,也可用HEAD~2表示,以此類推

與標籤有關的: 爲當前版本打標籤:git tag 標籤名 爲歷史版本打標籤:git tag 標籤名 該版本ID 指定標籤說明:git tag
–a 標籤名 –m "標籤說明" [可選:版本ID] 查看全部標籤:git tag 查看某一標籤:git show 標籤名
刪除某一標籤:git tag –d 標籤名

與GitHub有關的: 先有本地庫,後有遠程庫,將本地庫push到遠程庫

關聯本地倉庫和GitHub庫:git remote add origin 網站上的倉庫地址 第一次將本地倉庫推送到GitHub上:git
push –u origin master

先有遠程庫,後有本地庫,從遠程庫clone到本地庫

從遠程庫克隆到本地:git clone 網站上的倉庫地址

網站地址能夠選擇HTTPS協議(https://github.com...)、SSH協議(git@github.com...)。
若是選擇SSH協議,必須將Ubuntu的公鑰添加到GitHub上。見下一步

SSH Key

生成SSH Key:ssh-keygen –t rsa –C "你的郵箱@xx.com" 生成Key時彈出選項,回車選擇默認便可。
Key保存位置:/root/.ssh 登錄GitHub,建立new SSH key,其內容爲/root/.ssh/id_rsa.pub中文本

已經有了本地庫和遠程庫,兩者實現同步

本地庫的改動提交到遠程庫:git push origin master 更新本地庫至遠程庫的最新改動:git pull

Git經常使用命令 請確保已經安裝裏git客戶端 通常配置 git --version //查看git的版本信息 git config
--global user.name //獲取當前登陸的用戶 git config --global user.email //獲取當前登陸用戶的郵箱 登陸git /* 若是剛沒有獲取到用戶配置,則只能拉取代碼,不能修改
要是使用git,你要告訴git是誰在使用*/

git config --global user.name 'userName'
//設置git帳戶,userName爲你的git帳號, git config --global user.email 'email'
建立一個文件夾 mkdir nodejs //建立文件夾nodejs cd nodejs //切換到nodejs目錄下
初始化git倉庫 git init //在nodejs文件夾下初始化一個倉庫,此時文件裏會到一個.git的隱藏文件夾

建立忽略文件 touch .gitignore //不須要服務器端提交的內容能夠寫到忽略文件裏

/*
    .git
    .idea
*/ 查看目錄 ls -al 建立文件並寫入內容 若是文件不存在則會建立文件

echo "hello git"

index.html //將'hello git' 寫入到index.html中 單個>箭頭表示寫入, >>表示追加

查看文件內容 cat index.html 增長到暫存區中 git add index.html git add -A
//所有添加到緩存區 增長到版本庫中 git commit -m '備註信息' 查看版本 git log --oneline 比較差別
比較的是暫存區和工做區的差別

git diff 比較的是暫存區和歷史區的差別

git diff --cached 比較的是歷史區和工做區的差別(修改)

git diff master 撤回內容 (若是修改了工做區的文件後發現改錯了,能夠用暫存區或者版本庫裏的文件替換掉工做區的文件)
用暫存區中的內容或者版本庫中的內容覆蓋掉工做區

git checkout index.html 取消增長到暫存區的內容(添加時) git reset HEAD index.html
//顯示目錄的狀體 有沒有添加或者修改文件

git status 刪除本地文件 rm fileName 刪除暫存區 保證當前工做區中沒有index.html

git rm index.html --cached 使用--cached 表示只刪除緩存區中的內容

回滾版本 回滾最近的一個版本 git log

git reset --hard HEAD/commit_id 回滾到將來 git reflog 分支管理 建立分支 git branch
dev 切換分支 git checkout dev 建立分支並切換分支 git checkout -b dev 刪除分支 git
branch -d dev 在分支上提交新的版本 git commit -a -m 'dev1' 合併分支 git merge dev
分支的合併後顯示log git log --oneline --graph --decorate
在分支開發的過程當中遇到其餘問題須要切換其餘分支 保留寫好的內容在切換到主幹 保留內容

git stash 在次切換分以後須要應用一下保留的內容 git stash apply 丟掉保存的內容 git stash drop
使用並丟掉 git stash pop 最佳分支
-有的時候開發須要合併指定的內容,而不是合併全部的提交,因此咱們須要挑選最好的,本身生產版本

合併分支把樹杈掰到主幹上 git rebase 添加遠程的倉庫 push -u
-u參數 upstream

git push origin master -u //獲取最新代碼 鏈接遠程倉庫 git remote add origin倉庫的地址 查看遠程倉庫 git remote -v 刪除遠程倉庫 git remote rm origin

相關文章
相關標籤/搜索