Git版本控制
一、如何通過git將項目推送到github遠程倉庫
首先,電腦里需要安裝了git,還有自己的github賬戶。
第一步:我們需要先創(chuàng)建一個本地的版本庫(其實也就是一個文件夾)。然后在里面書寫自己的項目
mkdir projects
第二步:初始化:
進入這個文件夾, git init
配置個人信息:
# 全局配置個人信息
git config --global user.name "username"
git config --global user.email "email@qq.com"
查看git設(shè)置列表信息
git config --list
第三步: 1.通過git status查看當(dāng)前文件的狀態(tài),也可以跳過這一步;
2.通過git add '指定文件' 添加到倉庫,
3.或者通過git add . 把該目錄下的所有文件添加到倉庫。
第四步:提交:
git commit -m "提交內(nèi)容-描述"。
第五步:創(chuàng)建密鑰、公鑰SSH KEY。先看一下你C盤用戶目錄下有沒有.ssh目錄,有的話看下里面有沒有id_rsa和 id_rsa.pub這兩個文件,有就跳到下一步,沒有就通過下面命令創(chuàng)建:
ssh-keygen -t rsa -C "youremail@example.com"
然后一路回車。這時你就會在用戶下的.ssh目錄里找到id_rsa和id_rsa.pub這兩個文件。
查看id_rsa.pub公鑰: 1. cd ~/.ssh
2. ls
3. cat id_rsa.pub
第六步:登錄Github,找到右上角的圖標(biāo),打開點進里面的Settings,再選中里面的SSH and GPG KEYS,
1.點擊右上角的New SSH key,然后Title里面隨便填,
2.再把剛才id_rsa.pub里面的內(nèi)容復(fù)制到Title下面的Key內(nèi)容框里面,最后點擊Add SSH key,完成鑰匙配置
第七步:在Github上創(chuàng)建一個Git倉庫。
第八步:倉庫進行關(guān)聯(lián):
在Github上創(chuàng)建好Git倉庫之后我們就可以和本地倉庫進行關(guān)聯(lián)了,根據(jù)創(chuàng)建好的Git倉庫頁面的提示,
可以在本地TEST倉庫的命令行輸入:
git remote add origin "遠程倉庫地址"
第九步:關(guān)聯(lián)好之后我們就可以把本地庫的所有內(nèi)容推送到遠程倉庫(也就是Github)上了,通過:
$ git push -u origin master
第十步:由于新建的遠程倉庫是空的,所以要加上-u這個參數(shù),等遠程倉庫里面有了內(nèi)容之后,
下次再從本地庫上傳內(nèi)容的時候只需下面這樣就可以了:
$ git push origin master
這時候你再重新刷新你的Github頁面進入剛才新建的那個倉庫里面就會發(fā)現(xiàn)項目已經(jīng)成功上傳了.
第十一:遠程倉庫clone到 服務(wù)器項目文件夾中:
git clone 遠程倉庫地址
二、常用遠程推送失敗等問題 、 解決方案:
問題一: error: failed to push some refs to '遠程倉庫地址'
1.解決方案:git pull --rebase origin master
2.git push -u origin master --"這樣,就可以重放您的本地提交在新更新的原始/master之上。"
問題二:fatal: remote origin already exists.
1、先輸入$ git remote rm origin
2、再輸入$ git remote add origin '遠程倉庫地址'
問題三:fatal: Could not read from remote repository.
1.遠程倉庫地址不對,查看一下 : git remote -v
2.然后在終端輸入: git remote set-url origin 遠程倉庫地址
3.重新push就可以了: git push -u origin master
二、git版本其他 命令
3.查看歷史版本
git log
git reflog
git reflog 可以查看所有分支的所有操作記錄(包括commit和reset的操作),包括已經(jīng)被刪除的commit記錄,git log 不能察看已經(jīng)刪除了的commit記錄
4.回退版本
方法一:
-
HEAD
表示當(dāng)前最新版本 -
HEAD^
表示當(dāng)前最新版本的前一個版本 -
HEAD^^
表示當(dāng)前最新版本的前兩個版本,以此類推... -
HEAD~1
表示當(dāng)前最新版本的前一個版本 -
HEAD~10
表示當(dāng)前最新版本的前10個版本,以此類推...
git reset --hard HEAD^
方法二:
當(dāng)版本非常多時可選擇的方案
# 通過每個版本的版本號回退到指定版本
git reset --hard 版本號
5.撤銷修改
-
只能撤銷工作區(qū)、暫存區(qū)的代碼
-
撤銷工作區(qū)代碼
git checkout 文件名
-
撤銷暫存區(qū)代碼
# 第一步:將暫存區(qū)代碼撤銷到工作區(qū) git reset HEAD 文件名 # 第二步:撤銷工作區(qū)代碼 git checkout 文件名
-
撤銷倉庫區(qū)的代碼就相當(dāng)于回退版本操作
6.版本對比
- 對比本地倉庫庫與工作區(qū)
- 在工作區(qū),修改文件
git diff HEAD -- test1.py
- 對比本地倉庫各版本代碼
git diff HEAD HEAD^ -- test1.py
7.文件刪除
-
確定刪除處理
# 刪除文件 rm 文件名 # git確定刪除文件,對比添加文件git add git rm 文件名 # 刪除后記錄刪除操作版本 git commit -m '刪除描述'
-
誤刪處理,撤銷修改
# 刪除文件 rm 文件名 # git撤銷修改 git checkout -- 文件名