git操做

一、本地代碼管理

工做區(Workspace):添加修改刪除`文件python

暫存區(Index):將工做區中的操做完成小階段的存儲,是版本庫的一部分git

本地倉庫區(Respository): 對我的開發的一個小階段代碼存儲ssh

  • 記錄的各版本能夠查看或者回退spa

  • 可是在暫存區的版本一旦提交就再也沒有了(保存到倉庫區中)code

 

二、本地倉庫操做

1.安裝git

# 在虛擬機上安裝
sudo apt-get install git

 

2.查看是否安裝成功

git --version

 

3.初始化空的git文件

git init

# 初始化後運行如下命令會建立一個.git隱藏文件blog

ls -a

 

4.配置我的信息

# 全局配置我的信息
git config --global user.name "taka"    # taka是系統用戶名稱
git config --global user.email "python@admin.com"

# 配置信息會保存在家目錄下
pyvip@TL:~/MyProjects/.git$ more ~/.gitconfig
[user]
    email = python@admin.com
    name = taka
    
# 針對本項目的我的配置信息
git config user.name "taka"
git config user.email "python@admin.com"

# 配置信息出如今.git/config文件中

 

5.將工做區文件添加到暫存區

# 添加項目中全部文件
git add .

或者
# 添加指定文件
git add test01.py

 

6.查看文件狀態

git status

 

7.將暫存區文件提交到倉庫區

git commit -m '一些描述'
git push    # 推送到遠程倉庫上

 

8.查看歷史記錄

git log

git reflog

# git  reflog 能夠查看全部分支的全部操做記錄(包括commit和reset的操做),包括已經被刪除的commit記錄,git log 不能察看已經刪除了的commit記錄

 

4.回退版本

 

git reset --hard HEAD^     # 一個版本^ ,兩個版本^^ ,如此類推

 

方法一:ip

  • HEAD表示當前最新版本開發

  • HEAD^表示當前最新版本的前一個版本rem

  • HEAD^^表示當前最新版本的前兩個版本,以此類推...get

  • HEAD~1表示當前最新版本的前一個版本

  • HEAD~10表示當前最新版本的前10個版本,以此類推...

方法二:

當版本很是多時可選擇的方案

# 經過每一個版本的版本號回退到指定版本
git reset --hard 版本號

 

5.撤銷修改

git checkout 文件名    # 撤銷工做區代碼

撤銷暫存區代碼

# 第一步:將暫存區代碼撤銷到工做區
git reset HEAD  文件名
# 第二步:撤銷工做區代碼
git checkout 文件名

 

6.版本對比

 

# 對比本地倉庫庫與工做區
# 在工做區,修改文件
  - `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 -- 文件名

 

7.遠程倉庫(碼雲)文件下載

方法一(從遠程倉庫克隆下來):這個方法和遠程倉庫創建鏈接

git clone git@gitee.com:goodguang/my***.git 

#  git@gitee.com:goodguang/my***.git 是碼雲上的ssh

 查看本地倉庫和遠程是否創建鏈接(git remote -v

 

 方法二(從遠程倉庫克隆下來):這個方法只是把文件下載下來和遠程倉庫沒有創建鏈接

git pull git@gitee.com:goodguang/my***.git 

#  git@gitee.com:goodguang/my***.git 是碼雲上的ssh

若是文件不是一個git倉庫須要先初始化 (git init)

 

和遠程倉庫創建鏈接

git remote add name git@gitee.com:goodguang/my***.git

# name爲鏈接名稱,能夠隨便

 

刪遠程倉庫

 

git remote  # 查看所在的遠程倉庫鏈接名稱


git remote rm name  # 刪除遠程倉庫鏈接

 

問題:遠程倉庫文件和本地倉庫文件衝突

解決:一、強制推送,會覆蓋遠程倉庫的文件

git push origin +master    # 強制推送

# 或者:
git push -u name master   # name爲遠程倉庫的名稱

 

 

 

 

解決:二、先下載遠程倉庫的文件再上傳到遠程倉庫

# 下載遠程倉庫文件
git pull origin master --allow-unrelated-histories

# 而後再上傳到遠程倉庫
git push

相關文章
相關標籤/搜索