1. 程式人生 > >Git和Github簡單教程、命令集

Git和Github簡單教程、命令集

連結裡的大拿已經把git的教程寫的很詳細了,我提取幾條常用的命令備用,下面的命令需要對git有基本的瞭解,在命令或流程忘記時備用

備註:
1.origin:通常表示遠端主機名/遠端倉庫名(如定義了其他,請用其他名字替代)
2.master:預設分支名(主分支)
3.branchName:代指其他的分支名字,實際使用時請帶入真實的分支名字
4.FETCH_HEAD: 是一個版本連結,記錄在本地的一個檔案中,指向著目前已經從遠端倉庫取下來的分支的末端版本

1、電腦第一次使用git時需要執行的命令:

1.設定使用者名稱(github網站的使用者名稱)

git config --global user.name "你的使用者名稱"

2.設定郵箱 (github網站的郵箱)

git config --global user.email "你的郵箱"

可以在在.gitconfig檔案中直接配置
3、生成ssh key(和gitHub進行繫結使用),它會有三次等待你輸入,直接回車即可

ssh-keygen -t rsa -C "你的郵箱"

生成的ssh key複製到剪貼簿,執行 clip < ~/.ssh/id_rsa.pub或直接根據提示檢視路徑、開啟id_rsa.pub檔案複製,在gihub網頁上新增key。測試一下吧,執行

 ssh -T [email protected]

看是否成功

對於 oschina 的 “碼雲” ,執行

ssh -T [email protected]

對於 coding 的 “碼市” ,執行

 ssh -T [email protected]

2、初始化倉庫:init

1.在需要建立倉庫的資料夾下右鍵 點選“Git Bash Here” 彈出視窗輸入

git init

會建立一個隱藏的資料夾 .git

3、新建、編輯文件

vi xxx.xx

4、檔案的新增、提交:add 、commit 、log、reflog

1.檢視檔案(資料)的是否被新增追蹤

git status

2.新增、追蹤檔案到倉庫快取空間(stage)(commit 前必須要 add)

新增具體的檔案:git add <file>...
新增所有的檔案:git add -A

新增結束後可以使用 命令“git status” 檢視檔案是否已經新增快取
3.檢視檔案有哪些變化(+:新新增的 / -:刪除的資料)

git diff

4.提交到倉庫repository

git commit -m "提交資訊/版本備註"

5.檢視當前版本及之前的commit記錄

git log

帶圖形指示(檢視節點之間的merge情況)

git log --graph

HEAD的變更記錄(所有記錄)

git reflog

5、撤銷當前更改

待測

git checkout -- .

6、版本回滾:reset 、revert

6.1、使用git log 檢視commit版本號,複製版本號(不少於7位)

git reset --hard 版本號

執行後git log只能檢視當前版本及之前的版本資訊,HEAD 是向後移動,之後的版本資訊無法檢視,相當於時光倒流回之前的時間點。要回到最新的版本,git reflog 命令檢視這個HEAD所在的(所有)版本號,提取對應的版本號,再一次執行git reset –hard 版本號命令即可恢復到最新。

7、清除未追蹤的檔案:clean

刪除當前目錄下所有沒有track過的檔案(待測)

git clean -xf

8、中文亂碼

如果會顯示中文亂碼:

git config --global core.quotepath false

執行之後還會亂碼

git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8

請根據需要將後面的 utf-8 替換成你想要的編碼。如果是團隊專案,請確保所有成員的設定都一致

9、本地Git和Github的建立關聯、刪除關聯、檢視倉庫資訊:remote

1.建立關聯:在github網頁上的建立倉庫,並複製參考地址,HTTPS比較慢,所以推薦使用SSH

git remote add origin 你複製的github倉庫地址

2.刪除關聯:刪除名字為origin的遠端倉庫

git remote rm  origin 

3.檢視倉庫資訊:檢視遠端倉庫資料

git remote 不帶引數時可以參看遠端倉庫名稱
git remote -v 可以檢視遠端倉庫名稱和網址

如果github上的倉庫已經有資料(添加了README.md 或者 LICENSE), github 會拒絕你的 push ,需要先執行

git pull origin master

將倉庫上的資料pull下來後再執行

git push -u origin master

10、git和github資料互動:push、pull / fetch

執行9步驟後以後可以直接
1.push資料到github
1.1.push當前分支到github

git push 

1.2.push < branchName >這個分支到github的branchName 上,如果遠端分支不存在,則會被新建:git push <遠端主機名> <本地分支名>

git push origin branchName 

1.3.push < branchName >這個分支到github的branchNameX上,如果遠端分支不存在,則會被新建:git push <遠端主機名> <本地分支名>:<遠端分支名>

git push origin branchName:branchNameX

2.fetch 資料到本地(fetch和pull有那麼一點繞,需要花點時間理解,實際使用時也需要花點時間磨合,感知變化)
— 將遠端分支的最新內容拉到了本地,但是fetch後是看不到變化的
— 理解fetch,關鍵是理解FETCH_HEAD,FETCH_HEAD指的是:某個分支在伺服器上的最新狀態
2.1.不指定分支時通常預設為master分支,更新master的FETCH_HEAD,並沒有與本地的分支合併

git fetch origin 
or
git fetch origin master

2.2.指定了分支,更新該分支的FETCH_HEAD,只拉取該分支的最新狀態,並沒有與本地的分支合併,同時也可以測試遠端分支branchName是否存在

git fetch origin branchName

2.3.執行2.1或2.2後:checkout到相應的分支,merge 合併,合併後如果出現衝突則手動解決衝突,最後commit

git merge FETCH_HEAD
or
git merge origin/branchName (待測) / git rebase origin/branchName (待測)

2.4.在本地新建一個branchNameX分支,並將遠端倉庫的branchNamer分支程式碼下載到本地branchNameX分支(不存在則建立,但不會切換到該分支):git fetch <遠端倉庫> <遠端分支名>:<本地分支名>,

git fetch origin branchName:branchNameX

3.pull 資料到本地
3.1、執行後發現也是不會建立本地分支,資料也是更新到FETCH_HEAD,執行git log可以獲取到最新的commit_id,使用reset命令切換到最新版本:git pull <遠端主機名> <遠端分支名>

git pull origin branchName

3.2、取回遠端主機某個分支的更新後再與本地的指定分支合併即會將本地庫更新至遠端庫的最新狀態:git pull <遠端主機名> <遠端分支名>:<本地分支名>

git pull origin branchName:branchNameX

git pull是git fetch和git merge兩個步驟的結合,與git pull相比git fetch相當於是從遠端獲取最新版本到本地,但不會自動merge。如果需要有選擇的合併git fetch是更好的選擇。效果相同時git pull將更為快捷

備註:測試了幾次,如果實際的程式碼資料並沒有變化,可以嘗試使用git log檢視commit_id,使用reset命令切換到相應的版本

11、分支:建立/切換/檢視/刪除、分支合併和衝突解決、分支重新命名:branch、checkout 、merge

1.git checkout -b 分支名字 = (建立分支)git branch 分支名字 + (切換分支)git checkout 分支名字

建立並切換到分支 :git checkout -b branchName  
=
建立分支:git branch branchName 
+
切換分支:git checkout branchName 

2.檢視分支
檢視本地分支

git branch

檢視遠端分支

git branch -r

檢視所有分支,遠端分支會用紅色表示出來(如果你開了顏色支援的話)

git branch -a
git branch -av(帶V,可以檢視分支資訊)

3.刪除分支(master(預設分支)無法刪除、工作於某分支下時無法刪除該分支)

刪除本地分支:git branch -d branchName 
刪除遠端分支:法1:git push origin :branchName
刪除遠端分支:法2:git push origin --delete branchName

4.合併某個分支到現在的所處的分支

git merge 需要被合併的分支名字

合併分支可能會存在衝突、Git用<<<<<<<,=======,>>>>>>>標記出不同分支的內容

<<<<<<< HEAD 
code1[ ... ]
// 這裡的程式碼是當前分支中的程式碼資料
=======
code2[ ... ]
// 這裡的程式碼是需要被合併的分支中的資料
>>>>>>> branchName 

需要手動將上面標記出來的衝突程式碼資料進行根據需要進行修改,然後執行 git add / commit 命令,完成分支合併。最後刪除分支。
使用帶引數git log 檢視分支合併情況

git log --graph --pretty=oneline --abbrev-commit
git push --delete origin branchName (刪除遠端分支)
git branch -m branchName  branchNameNew (重新命名本地分支)
git push origin branchNameNew (重新提交一個遠端分支)

預設分支是無法刪除的,需要把預設分支修改為其他分支才可以刪除:修改預設分支步驟:
1.進入 github 中該專案的 Settings 頁面;
2.在Brabchs下設定 Default Branch 為其他的分支(例如 master);
2.重新執行刪除遠端分支命令

12.tag 建立、推送、獲取、刪除

— tags是branch中的一些小階段的標記,tag就像是一個里程碑一個標誌一個點,branch是一個新的征程一條線;
— tag是靜態的,branch要向前走。
— tags它其實是一個獨立的分支,或者說是一個不可變的分支.指向特定提交物件的引用,多用於版本釋出

12.1、建立tag

git tag tagname

建立帶註釋的tag

git tag -a tagname -m "備註資訊"

註解:git tag 是打標籤的命令,-a 是新增標籤,其後要跟新標籤號,-m 及後面的字串是對該標籤的註釋
12.2、刪除tags

git tag -d tagname (本地)
git push origin -d tagname (遠端)

git push origin :refs/tags/tagname 
註解:就像git push origin :branch_1 可以刪除遠端倉庫的分支branch_1一樣, 冒號前為空表示刪除遠端倉庫的tag

12.3、把本地tag推送到遠端

git push origin  tagname (單個)
git push --tags (多個tags推送)

12.4、獲取遠端tag

git fetch origin tag tagname

查詢本地tag.

git tag (-l)(顯示當前所有tag的名稱)
git show tagname (顯示某個tag的詳細資訊)
git tag "tagname*"(顯示內容和tagname匹配的多個tag)

13、clone

一個空的,乾淨的資料夾下從github上clone一個分支
13.1、git clone 預設是克隆Head指向的branch,預設是master分支

git clone [email protected]:xxxxx.git

13.2、單獨clone某個指定分支

git clone -b branchName [email protected]:xxxxx.git    

有分支後就可以去獲取其他分支了

git branch -a
git checkout -b branchName origin/branchName   

作用是checkout遠端倉庫origin的分支branchName,在本地起名為branchName分支,並切換到本地的branchName分支,其實-b後面的aaa可以隨意設定

不懂就查吧,少年,多用,自然融會貫通

相關推薦

GitGithub簡單教程命令

連結裡的大拿已經把git的教程寫的很詳細了,我提取幾條常用的命令備用,下面的命令需要對git有基本的瞭解,在命令或流程忘記時備用 備註: 1.origin:通常表示遠端主機名/遠端倉庫名(如定義了其他,請用其他名字替代) 2.master:預設分支名(

GitGithub簡單教程

發布 code workspace align cal 團隊合作 github init 出現 網絡上關於Git和GitHub的教程不少,但是這些教程有的命令太少不夠用,有的命令太多,使得初期學習的時候需要額外花不少時間在一些當前用不到的命令上。這篇文章主要的目標是用較少的

git github 簡單使用

1 > --- https://github.com/ 地址在此 2> --- 先註冊,不贅述  3> --- 本人使用的是linux 系統,別的也沒管.....學習是為了解決自己的問題 4> --- 註冊好後,頭像框旁邊的 +  號 create

2018尚矽谷GitGitHub視訊教程

Git是先進的分散式版本控制系統,而Github是常用的Git程式碼託管中心。本套教程內容豐富、詳實,囊括:Git安裝過程、本地庫基本操作、遠端基本操作、基於分支的Gitflow工作流、跨團隊協作的 Forking工作流、Eclipse中的Git版本控制以及Git對Eclip

關於使用GitGitHub教程

原文連結:Git和Github簡單教程 原文地址:http://www.cnblogs.com/schaepher/p/5561193.html 網路上關於Git和GitHub的教程不少,但是這些教程有的命令太少不夠用,有的命令太多,使得初期學習的時候需要額外花不少時間在一些當前用不到的

GitGithub的使用教程

span github merger tar push ssh keys 查看 刪掉 回退 Git是一款免費、開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的項目; GitHub是一個面向開源及私有軟件項目的托管平臺,因為只支持git 作為唯一的版本庫格式進行托管

GitGitHub的學習命令

Git和GitHub的學習和命令 1、看廖雪峰的git教程 2、看b站的視訊 2h 《幾個小時輕鬆搞定GitHub》 按照步驟來 1、建立 // 根據個人資訊替換引號內的內容 git config --global user.name "xxx" git confi

GitGitHub 命令小結

git   status    工作區,暫存區狀態 git   add        新增檔案到暫存區 git   rm   --cache

有關GitGitHub/碼雲的簡單

Git:是一款免費、開源的分散式版本控制系統 Github:是用Git做版本控制的程式碼託管平臺 常用Git命令: git init git clone git status git log git add git commit git diff git branch git check

初學者GitGitHub簡介(教程

翻譯&轉載:https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners   初學者Git和GitHub簡介(教程)   我們 在HubSpot 為初學者帶

有關GitGitHub命令

Git:是一款免費、開源的分散式版本控制系統 Github:是用Git做版本控制的程式碼託管平臺 常用Git命令: git init git clone git status git log git add git commit git diff git bra

2018最新尚矽谷GitGitHub教程

Git是先進的分散式版本控制系統,而Github是常用的Git程式碼託管中心。 本套教程內容豐富、詳實,囊括:Git安裝過程、本地庫基本操作、遠端基本操作、基於分支的Gitflow工作流、跨團隊協作的 Forking工作流、Eclipse中的Git版本控制以及Git對Ecli

使用gitgithub管理項目代碼

你是 -s 同時 查看 現在 後來 為我 一次 官方 以前不知道使用代碼管理工具,最後寫的一些東西都沒有了,由於硬盤壞了或者不小心格式化了之類的,後來使用了Git 和Github來托管自己的代碼和讀書筆記方便了不少,到哪裏只要有網就可以把自己的東西拷貝下來繼續使用。 我這裏

關於gitgithub

config user http 簡單使用 git 添加 官網下載 教程 nsh 1.github的簡單使用教程:http://www.jianshu.com/p/f58e38f38594 記得安裝之前要安裝git軟件 官網下載即可。 然後要使用gitbash 添加自己的郵

Android Studio中GitGitHub使用詳解

可能 必須 窗口 gin 擁有 說明 詳細 對話 發現   一、Git和GitHub簡述    1.Git    分布式版本控制系統,最先使用於Linux社區,是一個開源免費的版本控制系統,功能類似於SVN和CVS。Git與其他版本管理工具最大的區別點和優點就是分布式;  

gitgithub的重要性

完成 原因 們的 src 技術分享 開源 world 倉庫 地址 Git是一款免費、開源的分布式版本控制系統,github是全球最大的同性交友平臺啊呸,說錯了github是一個基於git的代碼托管平臺,付費用戶可以建私人倉庫,我們一般的免費用戶只能使用公共倉庫,也就是代碼要

GitGithub

target tar targe 不同的 一個 版本 link sogo 開源項目 1.程序的地址:https://github.com/sky1147/sky 2.Git在網絡上是這麽描述的:Git是一款免費、開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的項目

初學gitgithub

代碼 不用 分享 發的 如果 lin 方便 world 程序 1.Git/GitHub是什麽 Git:是一種 版本控制系統 ,稱為CVS,即並發版本系統(另一個系統SVN)。 相當於有一個巨大的撤銷按鈕。通過它可以在不同的時間點保存你的文件版本,還可以還原先前的版本和比

gitgithub的學習

linux 內核 版本信息 版本 開放 one web 設計 分布 免費 第一部分:我的github地址 https://github.com/AllOVERQ/first/tree/master 第二部分:git和github Git是一款免費、開源的分布式版本控制

Git(二)Git幾個區的關系與GitGitHub的關聯

備份 gpo 技術分享 tin 2.3 div 自動 泄露 blog 前言   前面只是大概的介紹了一點基礎的東西,接下來會更加深入的去了解一下Git。 一、Git的工作區、暫存區和版本庫之間的區別和聯系   1)工作區     在PC中能看得到的創建的一個管理倉庫