GIT---看我一步步入門(Windows Git Bash)
0 前言
不同的版本控制工具的比較這裡就不介紹了,我的入門是從windows開始的,而且是使用純命令方式(Git Bash),當然也可以結合TortoiseGit或者msysgit中的GIT Gui工具,這個工具可以通過介面方式來操作管理。 我們要管理專案,首先要建立一個GIT伺服器系統,來管理專案版本。但是有的條件有限,我們搞不起伺服器,只能藉助第三方了,github就是很好的選擇,它是一個網站,已經部署好了GIT系統,我們只需要註冊個賬號,然後就可以免費當我們的GIT伺服器了,作為開發專案託管,msysgit是GIT版本控制系統在windows下的開源版本,在Linux系統下我們需要編譯安裝git。1 安裝
2 配置
- GIT中文亂碼
- 在GIT終端輸入下面的命令可以提高GIT的輸出格式
- 設定你的名字和email,這些是在提交commit時的簽名
- 設定完名字和email後,會在主目錄裡新建了一個全域性的配置檔案.gitconfig,如果不用全域性設定,則在上一步中不用加--global引數,然後會在當前專案中的.git/config檔案增加了以上的設定內容
- 當不用global時只是對當前專案進行設定,如warning: LF will be replaced by CRLF...出現是因為預設換行符為Linux系統下,為LF,而windows下的換行符是不一樣的,為CRLF。出現這個警告,我們可以對專案進行設定(可以加--global):
- SSH Key生成及github上新增SSH Key(一種不需要密碼,用於受信的電腦,有點類似淘寶證書之類的)
- 檢查電腦上是否已有SSH Key,有的話會列出所有.pub檔案,重新生成的話可以刪除它們
- $ ls -al ~/.ssh
- 產生一個新的SSH Key
- $ ssh-keygen -t rsa -b 4096 -C "[email protected]"
- Generating public/private rsa key pair.
- Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
- Enter passphrase (empty for no passphrase): [Type a passphrase]不輸入密碼的話則為空密碼
- Enter same passphrase again: [Type passphrase again]
- Your identification has been saved in /Users/you/.ssh/id_rsa.
- Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
- The key fingerprint is:
- 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]
- $ ssh-keygen -t rsa -b 4096 -C "[email protected]"
- 新增SSH Key到ssh-agent
- $ ssh-agent -s
- #啟動ssh-agent 到後臺
- Agent pid 59566
- $ ssh-add ~/.ssh/id_rsa
- Could not open a connection to your authentication agent.???
- $ ssh-agent -s
- 新增SSH Key 到你的賬戶
- $ clip < ~/.ssh/id_rsa.pub
- #複製id_rsa.pub檔案內容到黏貼板
- 然後將複製的內容黏貼到github.com上的賬戶中的Setting中的SSH Keys中。
- $ clip < ~/.ssh/id_rsa.pub
- 測試連線
- $ ssh -T [email protected]
- The authenticity of host 'github.com (207.97.227.239)' can't be established.
- # RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
- # Are you sure you want to continue connecting (yes/no)?選擇yes
- Hi username! You've successfully authenticated, but GitHub does not
- # provide shell access.如果username為你的賬戶名,則測試連線成功。
- $ ssh -T [email protected]
- 檢查電腦上是否已有SSH Key,有的話會列出所有.pub檔案,重新生成的話可以刪除它們
3 操作
一般操作都帶有引數,可以通過新增-h引數選項來檢視幫助。如$ git add -h 。而且一般的命令都跟Linux中操作相同,如rm刪除檔案,mkdir新建目錄等。3.1 常用操作
- 獲取Git倉庫
- clone一個倉庫。克隆一個倉庫可以用多種協議來實現,如https、ssh、git(具體區別可以去了解)等,不過我們都必須知道倉庫地址(Git URL)
- $ git clone https://github.com/freeape/hello-world.git
- $ git clone [email protected]:freeape/hello-world.git
- $ git clone git://github.com/freeape/hello-world.git
- 新建一個倉庫需要登入github.com或者$ git --bare init,而建立本地倉庫$ git init(注:如果要push,肯定是要有個遠端倉庫的)
- clone一個倉庫。克隆一個倉庫可以用多種協議來實現,如https、ssh、git(具體區別可以去了解)等,不過我們都必須知道倉庫地址(Git URL)
- 新增內容:$ git add [options] [--] <pathspec>...
- 撤銷新增內容:$ git rm --cached <added_file_to_undo>
- 注:在還沒有提交之前,不小心將其他的內容新增進來了可以用此命令,沒有提交,不存在HEAD版本,所有千萬不能用$ git reset HEAD命令,這樣會刪除你本地的內容,服務端又沒儲存,那你就不能恢復了,不過可以用恢復工具,但是這個不靠考。
- 檢視當前工作倉庫的狀態:$ git status
- 提交新增的檔案到快取區:$ git commit
- 將提交的檔案上傳到伺服器:$ git push
- 指定預設主機來push:$ git push -u origin master
- 如果遠端主機的版本比本地新,強推:$ git push -f origin master
- 不管遠端是否有沒有這個分支,均推上去:$ git push --all origin master
- 從伺服器上更新取回到本地:$ git pull = $ git fetch + $ git merge
- 新增遠端倉庫(SSH方式):$ git remote add origin [email protected]:UserName/Repository.git
- 檢視當前遠端倉庫:$ git remote -v
- 檢視操作日誌:$ git log
- 刪除檔案跟蹤並且刪除檔案系統中的檔案file:$ git rm file
- 刪除檔案跟蹤但不刪除檔案系統中的檔案file: $ git rm --cached file
- 檢視遠端主機名為origin的資訊:$ git remote show origin
- 新增遠端主機:$ git remote add 主機名 網址,如$ git remote add origin [email protected]/UserName/Repository.git
- 刪除本機連線的遠端主機test(只是刪除本機與服務端的倉庫連線):$ git remote rm test
- 重新命名遠端主機名:$ git remote rename 原主機名 新主機名
- 檢視遠端分支:$ git branch -r
- 檢視所有分支:$ git branch -a
- $ git branch -a
- * master
- remotes/origin/master
- 表示本地主機的當前分支為master,遠端分支為origin/master
- 建立一個名為test的分支:$ git branch test
- 切換到test分支:$ git checkout test
- 在origin/master基礎上建立newBranch分支:$ git checkout -b newBrach origin/master
- 合併分支:$ git merge newBranch
- 刪除分支:$ git branch -d newBranch
- 顯示當前工作版本和HEAD的區別:$ git diff HEAD
- 注:diff裡面a表示前面那個變數,b表示第二個變數
- 將兩個分支(branch1 branch2)的最新一次提交做比較:$ git diff branch1 branch2
- 比較上次提交和上上次提交:$ git diff HEAD^ HEAD
- 比較當前目錄和分支test的差別:$ git diff test
- 檢視尚未提交的目錄更新了那些部分:$ git diff --stat 或者$ git status
- 設定branch 命令別名:$ git config --global alias.br branch
- 檢視所有提交的HEAD版本:$ git reflog
- 恢復某個版本:$ git reset --hard 12abc3d
3.2 例項操作
- 在本機中新建GitTest 資料夾:
- 進入這個資料夾:
- 初始化GitTest 資料夾,生成了.git資料夾,即建立了本地倉庫:
- 建立GitTest.txt 文字檔案,並輸入“GitTest!”字串:
- 列出GitTest資料夾中所有檔案和目錄:
- 檢視當前倉庫狀態:
- 將GitTest.txt檔案新增進快取區:
- 解決warning:CRLF will be replaced by LF in GitTest.txt:
- 檢視當前倉庫狀態:
- 提交內容:
- 在github上登入並建立伺服器端倉庫:
- 當前倉庫新增遠端倉庫:
- 檢測是否新增成功:
- 更新遠端版本到本機倉庫:
- push本機倉庫內容到伺服器倉庫:
4 後續學習和了解
- branch/checkout
- 其他命令的引數選項功能
- 不同協議傳輸方式區別
- markdown程式設計
- ...
相關推薦
GIT---看我一步步入門(Windows Git Bash)
0 前言 不同的版本控制工具的比較這裡就不介紹了,我的入門是從windows開始的,而且是使用純命令方式(Git Bash),當然也可以結合TortoiseGit或者msysgit中的GIT
git學習筆記1-剛剛入門(霜之小刀)
git學習筆記1-剛剛入門(霜之小刀) 歡迎轉載和引用,若有問題請聯絡 若有疑問,請聯絡 Email : [email protected] QQ:2279557541 1、git中檔案的狀態 這個一開始我都挺難理解的,因為我以前是使用sv
Elasticsearch學習,請先看這一篇!(Elasticsearch教程01)|MVP講堂
作者:阿里雲MVP 銘毅 上節內容:死磕 Elasticsearch 方法論:普通程式設計師高效精進的 10 大狠招!下節連結:Elasticsearch增、刪、改、查操作深入詳解(Elasticsearch教程02) 題記:Elasticsearch研究有一段時間了,現特將Elasticsearch相關
MongoDB一:入門(安裝與配置)
https://www.cnblogs.com/cbw-mango/p/7987682.html 一.簡介 MongoDB 是一個基於分散式檔案儲存的資料庫。由C++語言編寫。旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。 mon
CentOS下Git伺服器搭建與客戶端(windows和centos)搭建
一.伺服器端 1.yum安裝Git伺服器 yum install -y git 2.建立一個git使用者,用來執行git服務 useradd git 3.建立客戶端登入證書 注,收集所有需要登入的使用者的公鑰,就是他們自己生成的id_rsa.pub檔案,把所有公鑰複製到/
git和碼雲使用教程(Windows二方法)
本Git和碼雲入門操作 一方面 簡潔明瞭,忽略對簡單的碼雲註冊的演示,只做文字引導;另一方面,重點突出,對git連結碼雲容易採坑的地方,詳細步驟。且本文有兩種Git軟體連結碼雲的方法,一種是視窗也程式碼輸入;另一種是介面操作,各有千秋,歡迎“品嚐”。 1.程
mycat安裝及入門(windows下安裝)
一、安裝及啟動: 1.安裝 切換到mycat 目錄 mycat.bat install 2.啟動 mycat.bat start 3.查詢執行狀態 mycat.bat status 4.停止服務 mycat.bat stop 二、配置檔案介紹
python如何玩“跳一跳”!(windows安桌版本請進!)
郵箱 技術 通過 xxx jump 如何 imp adb bsp 最近“跳一跳”,很火爆,有木有? 看了一下網上的教程,動作搭建了一下環境,就可以用腳本自動跑起來啦!!! 下面說一下android手機的實現過程: 首先,是python環境的搭建 環境的搭建, 1,安裝p
MongoDB 用法入門(windows)①
根據 all 默認 set www 安裝包 屬性 str red 概述 大家對數據庫肯定不陌生,肯定也有很多人用過MySQL,但是在用MySQL的時候各種建表,寫表之間的關聯讓人非常頭疼。 MongoDB也是一種數據庫,但是它不是用表,而是用集合來裝數據的,我對這種數據儲存
一、ESP8266入門(基於LUA開發)
opera 包括 blog 情況 探索 到你 哈哈哈 打開 雜項 序 一入坑便停不下來。。。 還挺有意思的哈,233,,,, 資料雜,自己一個一個去找確實浪費了不少時間,而且大多還都是英文的,需要硬著頭皮看。 這次實踐入門,更是對英語的重要確信無疑。Github必
菜鳥帶你看原始碼——看不懂你打我ArrayList原始碼分析(基於java 8)
文章目錄 看原始碼並不難 軟體環境 成員變數: 構造方法 核心方法 get方法 remove方法 add方法 結束 看原始碼並不難 如何學好程式設計?如何寫出優質的程式碼?如
各種排序演算法,一步步更新(一),桶排序,氣泡排序,選擇排序,快速排序
部分方法來自我關注的博主 J_小浩子 謝謝 1 桶排序 bucketsort 1 桶排序 #include <stdio.h>//桶排序基本說明 int main(){ int data1[11]={0},tem
Mycat入門(Windows環境)
Mycat(Windows環境)(1) 初入門 Mycat 是SQL叢集中介軟體,基於阿里開源的Cobar產品而研發,Cobar的穩定性、可靠性、優秀的架構和效能 1. MyCat準備 安裝 mysql 安裝jdk 1.8
Zabbix實戰篇(一步步帶你到郵件報警)
zabbix純內網環境監控伺服器傳送郵件報警 尊敬的各位大佬,親愛的小白們,以及正在剛入門zabbix的精英們,你們好,本文章適讀範圍: 大佬:瞅一眼就行了。 小白:我去,這是啥有點看不太懂。 正在入門zabbix:這文章還可以,先存下來,說不定以後有用。 打醬油的
mysql 反思一 (windows常用命令)
最近對mysql 的索引想深入的瞭解一下,於是乎就寫了個這。 1.使用場景描述:有些公司線上不能直接用資料庫工具連線,因為沒有暴露出外部連結的介面,於是乎我們只能通過跳板機登入上伺服器在連線上想要連線的資料庫。 2.首先是登入mysql: 先進入mysql 的命令
Linux程式設計:一、入門(建立自己的靜態庫)
專案檔案最終的樹目錄,生成目標程式後,可以刪除中間檔案 note:靜態庫以lib開頭 ,比如mylib.a 靜態庫缺點:很多程式使用一個函式庫的函式時,會產生很多個副本。 共享庫.so可以解決此問題。 建立自己的函式,放在不同的標頭檔案中,只定義不宣告,並用gcc編譯 /
STM32F4discovery_CDC_Device資料傳輸的一步步實現(USB2.0FS)
1. 需求 某專案需要微控制器把ADC資料上傳到電腦。方法有兩種:1、USB;2、乙太網。百度必應了一番,發現有人用過NXP的LPC的一款帶USB2.0 HighSpeed phy的片子,但是採用BGA封裝,開發難度上了一個層次。這兩年內使用的STM32F1、F4比較多,對
跟我一步步探尋打款系統的建立過程
1.專案背景 初始階段 業務方訂單稽核通過後,會有離線任務不斷輪訓向支付中心發起呼叫,支付中心打款處理完成後會返回ifSuccess(是否落庫),state,code,error Message等。如果落庫且code為打款成功,訂單業務狀態會修改為打款成功。 發
關於javascript的原型和原型鏈,看我就夠了(二)
溫故 建立物件的三種方式 通過物件直接量 通過new建立物件 通過Object.create() js中物件分為兩種 函式物件 普通物件 仔細觀察如下程式碼 function Foo(name) { this.name = name; } var fo
一文看懂Transformer內部原理(含PyTorch實現)
Transformer註解及PyTorch實現 原文:http://nlp.seas.harvard.edu/2018/04/03/attention.html 作者:Alexander Rush 轉載自機器之心:https://www.jiqizhixin.com/artic