2、單機上使用Git、創建遠程倉庫、克隆遠程倉庫

1、單機上使用Gitlinux

# yum install -y git
# mkdir /data/gitroot
# cd /data/gitroot
# git init   //初始化倉庫,初始化後ls -la能夠看到一個.git的目錄
在該目錄下,隨便寫點東西,vim 1.txt
# git add 1.txt   //把1.txt添加到倉庫作標記
# git commit -m "add 1.txt"   //add完了必需要commit纔算真正把文件提交到git倉庫裏,-m指定解釋說明的信息。解釋說明必定要寫清楚。
報錯:
*** Please tell me who you are.

Run

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

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@MRX.(none)')
解決方法:
# git config --global user.name "aming"
# git config --global user.email "youjian"
定義好你的名字和郵箱。

# git commit -m "add 1.txt"
[master(根提交) 7e55239] add 1.txt
 1 file changed, 5 insertions(+)
 create mode 100644 1.txt
 
# git status   //查看當前倉庫中的狀態,好比是否有改動的文件
# 位於分支 master
無文件要提交,乾淨的工做區

再次更改1.txt
 先不添加到git倉庫裏,查看狀態
 # git status 
# 位於分支 master
# 還沒有暫存以備提交的變動:
#   (使用 "git add..." 更新要提交的內容)
#   (使用 "git checkout --..." 丟棄工做區的改動)
#
#	修改:      1.txt
#
修改還沒有加入提交(使用 "git add" 和/或 "git commit -a")

# git diff 1.txt   //相比較倉庫裏面的版本,對比本次修改了什麼內容。
diff --git a/1.txt b/1.txt
index 958a6f4..100ff5b 100644
--- a/1.txt
+++ b/1.txt
@@ -4,3 +4,4 @@ lehopigbnipa
 hjkasnklfejhuofj
 ioveripooabvo
 eovhsdidhbviabu
+bviagb

# git add 1.txt
# git commit -m "add 1.txt again"  //把前面未提交的提交一下
[master 7802c4f] add 1.txt again
 1 file changed, 1 insertion(+)
再更改一下1.txt的內容
# git add 1.txt 
# git commit -m "ch 1.txt again"
[master c3792d6] ch 1.txt again
 1 file changed, 2 deletions(-)

# git log  //查看全部變動記錄
commit c3792d659aba7feae2be7e09337067bfbf14db76
Author: aming//這裏定義了名字和郵箱
Date:   Sat Aug 31 20:38:58 2019 +0800

    ch 1.txt again

commit 7802c4fbfb41a3426aec1e224c6b3b56b746ebfd
Author: amingDate:   Sat Aug 31 20:37:12 2019 +0800

    add 1.txt again

commit 7e55239fcf6283f801b2bb44e4f4feb163ef9406
Author: amingDate:   Sat Aug 31 20:22:09 2019 +0800

    add 1.txt


 # cat /root/.gitconfig   //這裏面顯示了名字和郵箱
[user]
	name = aming
	email = youjian

# git log --pretty=oneline  //將內容用一行顯示
c3792d659aba7feae2be7e09337067bfbf14db76 ch 1.txt again   //前面的字符串爲版本ID
158eee38da7accb5da0abcf5d8dd4afb2d5a587c add 1.txt again
7e55239fcf6283f801b2bb44e4f4feb163ef9406 add 1.txt

[root@MRX gitroot]# git reset --hard 158eee38   //回退版本,後面跟的字符串能夠是簡寫
HEAD 如今位於 158eee3 add 1.txt again
# git log --pretty=oneline   //由於版本回退了,因此後面的版本沒有了
158eee38da7accb5da0abcf5d8dd4afb2d5a587c add 1.txt again
7e55239fcf6283f801b2bb44e4f4feb163ef9406 add 1.txt

# git reflog   //查看全部歷史版本,能夠根據歷史版本再恢復到後面的版本
158eee3 HEAD@{0}: reset: moving to 158eee38
c3792d6 HEAD@{1}: commit: ch 1.txt again
7802c4f HEAD@{2}: commit: add 1.txt again
158eee3 HEAD@{3}: commit: add 1.txt again
7e55239 HEAD@{4}: commit (initial): add 1.txt
# git reset --hard c3792d6
git log --pretty=oneline  //後面的版本就都回來了

# rm -f 1.txt  //不當心刪除了
# git checkout -- 1.txt  //恢復1.txt
若是1.txt文件作了更改,作了add可是沒有作commit,再想回退到上一次提交的狀態,
可使用git reset HEAD 1.txt   //這條命令能夠把add的標記給它去掉
重置後撤出暫存區的變動:
M	1.txt
再執行git checkout -- 1.txt   //恢復成修改以前的內容,就是把代碼庫裏面最新的文件搞回來。

刪除文件
# git rm 1.txt
rm '1.txt'
# git commit -m "delete 1.txt"   //把庫裏面的也刪掉,提交一次。
[master 742df99] delete 1.txt
 1 file changed, 5 deletions(-)
 delete mode 100644 1.txt
 若是連庫裏的也刪掉了,要想再恢復,就git log --pretty=oneline看歷史版本,直接回退到上一個版本。


2、創建遠程倉庫git

【本地項目推送到遠程】github

一、首先到https://github.com註冊一個帳號。再點sign in登陸。數據庫

二、建立本身的git,點右上角加號,再點new repository。vim

三、數據庫名字自定義,好比叫apelearn,選擇public(公有),點 create repository。瀏覽器

四、添加密鑰key:右上角點本身頭像,選擇settings,左側選擇SSH and GPG keys。//加密鑰的目的是爲了認證。bash

五、右側點New SSH key,把linux機器上的~/.ssh/id_rsa.pub內容粘貼到key裏,這個是公鑰。若是沒有,就使用ssh-keygen命令生成。 ssh

六、到/tmp目錄下建立一個apelearn目錄,進入apelearn目錄。執行命令:ide

echo "# apelearn" >> README.md this

git init 

git add README.md 

git commit -m "first commit"

# echo "# apelearn" >> README.md
# git init
初始化空的 Git 版本庫於 /tmp/apelearn/.git/
//初始化之後會生成一個.git的目錄,ls -la能夠看到。
# git add README.md
# git commit -m "first commit"
# git remote add origin https://github.com/yaoweiyaowei/apelearn.git       //把當前倉庫裏的東西推到遠程上去
# git push -u origin master
 Username for 'https://github.com': yaoweiyaowei           //輸入你GitHub的用戶名和密碼。
Password for 'https://yaoweiyaowei@github.com': 
Counting objects: 3, done.
Writing objects: 100% (3/3), 209 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/yaoweiyaowei/apelearn.git
 * [new branch]      master -> master
分支 master 設置爲跟蹤來自 origin 的遠程分支 master。

七、把本地倉庫推送到遠程倉庫 git remote add origin https://github.com/yaoweiyaowei/apelearn.git  //這一步是在遠程建立一個新的倉庫apelearn,名字儘可能和本地的一致。

八、git push -u origin master  //而後把本地的apelearn倉庫推送到遠程的apelearn。推送之後,到GitHub的apelearn倉庫裏刷新一下,就能夠看到README.md存在了。

下一次再推送,就能夠直接 git push。

試驗:

寫一個1.txt,內容隨意。

# vim 1.txt
# git add 1.txt
# git commit -m "add 1.txt"
# git push

再到GitHub上倉庫裏刷新則能夠看到2.txt了。


3、克隆遠程倉庫

【把遠程的項目克隆到本地】

打開GitHub的一個倉庫,裏面有一個綠色的圖標,寫着Clone or download,點開後,將連接複製,而後到home目錄下就可使用克隆命令了。

# cd /home
# git clone git@github.com:yaoweiyaowei/lanmp.git     //後面跟Git的地址。

它提示,會在這個當前/home目錄下初始化一個倉庫,並建立一個.git的目錄。

若是尚未把公鑰上傳到GitHub上,也能克隆這個項目,能夠讀,可是沒有權限寫。

# cd lanmp
# vim README.md  //隨便加點東西
# git add README.md
# git commit -m "change readme.md"
# git push

再到GitHub的倉庫裏刷新能夠看到變更。

1.png

關於在服務端改動文件內容,須要注意瀏覽器的不一樣,QQ瀏覽器沒法識別變動內容,不能改,Firefox或者Chrome均可以。

2.png

QQ瀏覽器在這裏是灰色的,不能夠更改。改動內容提交後,能夠再次看到變動:

3.png

服務端改了內容後,想將客戶端的內容再更新,使用命令git pull,把它拉下來。

git push是往服務端上推。

git pull是往客戶端下拉。

若是歷來沒有作過克隆,第一次作的時候要用git clone命令,SVN是checkout。


總結:

單擊上使用Git:

# yum install -y git

# git init   //初始化倉庫

# git add 1.txt

# git commit -m "add 1.txt"

# git status      //查看當前倉庫的狀態。

# git diff 1.txt   //和倉庫裏的版本對比,本次修改了什麼內容。

# git log   //查看全部變動記錄

# git log --pretty=oneline   //將內容用一行顯示

# git reset --hard 158eee38   //回退版本

# git reflog    //查看全部歷史版本

# git checkout -- 1.txt   //不當心刪除了文件,再恢復文件

# git rm 1.txt   //刪除文件

# git commit -m "delete 1.txt"   //將庫裏面的也刪掉


創建遠程倉庫:

一、登陸GitHub

二、建立一個數據庫(git)

三、添加密鑰ssh key

四、到客戶端的對應目錄下初始化倉庫

五、

echo "# 11111" >> README.md 

git init 

git add README.md 

git commit -m "first commit" 

git remote add origin git@github.com:yaoweiyaowei/11111.git   //在遠程建立一個新倉庫 

git push -u origin master


克隆遠程倉庫:

git clone命令,將遠程項目克隆到客戶端。後續用法一致,git add,git commit。

git push,往上推。

git pull,往下拉。

相關文章
相關標籤/搜索