Git提交程式碼倉庫的兩種方式

Iron_Man~發表於2023-04-14

目錄

一: 兩種本地與遠端倉庫同步

"""
1)你作為專案倉庫初始化人員:
線上要建立空倉庫 => 本地初始化好倉庫 => 建立remote連結(remote add) => 提交本地倉庫到遠端(push)

2)你作為專案後期開發人員:
遠端專案倉庫已經建立成功 => 複製遠端倉庫到本地(clone) => 進入倉庫就可以進行接下來的開發
"""

1 git 遠端倉庫

1.建立一個空專案,如果選擇.gitignore和開源許可,那麼建立的建立就不是一個空倉庫,會存在:
	1 .gitignore
	2 LICENSE  開源許可

image

2.建立完成的空倉庫

image

提交本地版本庫操作
1.初始化
git init
2.檢視當前狀態
git status
3.提交到暫存區
git add .
4.查詢當前狀態
git status
5.提交到本地的版本庫
git commit -m '第一次提交'

image

提交到遠端版本庫操作
1.Git 全域性設定:
git config --global user.name "www.zhang.com"
git config --global user.email "10311112+wwwzhang-com@user.noreply.gitee.com"
# 注意: 如果郵箱設定的是別人的郵箱,那麼提交到遠端倉庫就會顯示別人的頭像與名稱
git config --global user.email "10311112+wwwzhang-com@user.noreply.gitee.com"
2.增加一個遠端倉庫地址
git remote add origin https://gitee.com/wwwzhang-com/admin_item.git

# 提示標準寫法:
	git remote add 名字 遠端倉庫地址

image

3.查詢當前存在的遠端倉庫
git remote

image

5.本地版本庫內容提交到遠端倉庫
git push origin master  # 把本地版本庫內容,提交到遠端倉庫,需要輸入giee的使用者名稱密碼

# 提示標準寫法:
	git push 遠端倉庫名字 分支名字

image

image

6.查詢遠端倉庫

image

注意:本地版本庫提交到遠端倉庫使用者名稱密碼存放位置

image

遠端倉庫操作

1.增加
-git remote add 名字 遠端倉庫地址
2.檢視
-git remote
3.刪除
-git remote remove origin
4.提交到遠端倉庫
-git push origin master

本地倉庫與遠端倉庫提交使用(刪除與新增)

1.當pycharm刪除了一個檔案s1.py
# 當pycharm刪除了一個檔案s1.py
1.刪除或者新增都會進快取區
2.將快取區提交到本地版本庫
git commit -m '刪除s1.py'

image

2.本地版本庫內容提交到遠端倉庫
push origin master

image

3.查詢遠端倉庫
1.本地版本庫提交到遠端倉庫記錄
2.分支master提交到遠端倉庫記錄,測試,開發本地版本庫。提交到遠端倉庫。

image

remote源操作

"""
1)檢視倉庫已配置的遠端源
>: git remote
>: git remote -v

2)檢視remote命令幫助文件
>: git remote -h

3)刪除遠端源
>: git remote remove 源名
eg: git remote remove origin

4)新增遠端源
>: git remote add 源名 源地址
>: git remote add orgin git@gitee.com:doctor_owen/luffyapi.git

5)提交程式碼到遠端源
>: git push 原始碼 分支名

6)克隆遠端源
>: git clone 遠端源地址
"""

"""
1)透過克隆方式連線遠端源,預設遠端源名就叫origin;所以主動新增遠端源來連線遠端倉庫,原始碼也用origin
2)本地一個倉庫只需要和遠端一個源進行同步,所以只需要連線一個遠端源,如果還想把原生程式碼同步給第三個平臺,那麼可以透過主動新增遠端源來連線第三個平臺的遠端倉庫,此時的原始碼就不能再叫origin了,比如online都可以
3)pull和push都可以提供選擇不同的原始碼,和不同的遠端倉庫互動
"""

2 採用ssh協議連線遠端

連線遠端伺服器的兩種方式
1.https方式: 使用使用者名稱+密碼認證的方式
2.ssh方式: 公鑰私鑰方式
    1.本地生成公鑰私鑰
    2.把公鑰配置到gitee上
    3.以後再提交到遠端倉庫就不需要輸入使用者名稱和密碼了
使用ssj協議連線遠端使用流程
1.cmd命令 視窗執行生成公鑰私鑰
# 本地生成一個公鑰私鑰 rsa加密方式  郵箱
ssh-keygen -t rsa -C "10311112+wwwzhang-com@qq.com"

# 生成儲存位置: C:\Users\86130/.ssh/id_rsa
生成到使用者家路徑的 .ssh資料夾下
-id_rsa      # 私鑰
-id_rsa.pub  # 公鑰

# 回車即可

image

2.把本地公鑰配置到gitee上

image

重寫配置遠端倉庫為ssh(以後再提交程式碼就不需要輸入使用者名稱密碼了)

# 注意: 本地sttps,git的憑據就可以刪除了

# 1.刪除之前配置的https協議的遠端倉庫
git remote remove origin

# 2.檢視當前遠端倉庫
git remote

# 3.配置ssh遠端倉庫(以後再提交程式碼就不需要輸入使用者名稱密碼了)
git remote add origin git@gitee.com:wwwzhang-com/lufy_api.git

# 4.查詢當前遠端倉庫   
git remote

image

本地版本庫提交到遠端ssh倉庫

# 1.修改了gitignore內容(提交至快取區)
git add .
# 2.將快取區提交至版本庫
git commit -m '修改了gitignore'
# 3.將本地版本庫提交至遠端ssh倉庫
git push origin master  # yes,繼續連線

image

3 專案創始者和專案開發者

1.如果我是專案開發者,需要把程式碼clone到本地

# 開發者
1)生成自己電腦的公鑰,配置到自己的碼雲個人公鑰中
2)把自己的碼雲使用者名稱提供給別人,別人新增你成為專案開發者
3)自己確認新增,成為開發者,克隆開發專案,進行開發
# 需求: 本地lufei專案被意外刪除了,需要從遠端倉庫克隆/下載到本地

1.https或ssh或克隆都可以,三種下載方式
# git clone https連結
git clone https://gitee.com/wwwzhang-com/lufy_api.git

image

下載本地成功

image

# 所有版本記錄都存放在.git資料夾裡面
git status

image

重新將程式碼提交到遠端倉庫
# 修改程式碼
1.提交至快取區
git add .
2.提交至版本庫
git commit -m '開發者最後'
3.提交至遠端倉庫  
git push origin master  

# 注意
1.出現輸入使用者名稱和密碼的情況,輸入即可,因為是使用https下載的
# 解決方法:
1.重新配置ssh公鑰私鑰即可

image

1 如果我是專案開發者,需要把程式碼clone到本地
	-git clone https://gitee.com/liuqingzheng/luffy_api.git
     -修改程式碼
    -提交到遠端
    	git push origin master

2 如果我是專案創始者,需要遠端新建倉庫,原生程式碼push上去

# 創始者順序
1)生成自己電腦的公鑰(公鑰生成一次就可以了),把它提交給專案管理者
2)專案管理者新增你公鑰,加入開發者,提供給你專案克隆地址
3)克隆開發專案,進行開發

# 1.專案的創始者:
可以在專案管理-->倉庫成員管理-->開發者邀請其他成員加入--成為開發者

# 2.開發者可以進行以下步驟:
    1.我是專案的開發者,把程式碼clone到本地
    2.修改程式碼
    3.提交到遠端

image

4 協同開發

1 管理員,開發者(10開發者)
	-能提交程式碼(能增刪查改程式碼)  

協同開發(跨版本問題)

# 協同開發(跨版本問題)
1.當開發者在開發a版本時,另兩個開發者,已經提交了兩個版本到遠端倉庫,
2.問題: 這個時候在開發a版本分支的開發者如果提交到遠端倉庫會造成版本衝突,嚴重會讓2版本和3版本被自己跨版本提交的版本覆蓋掉。
3.解決: 必須先拉取程式碼下來(讓你本地保持最新)git pull origin master,在進行提交即可  

image

協同開發(拉取程式碼與自己相同問題)

1.可能會傳送的衝突,當我們拉取下來的程式碼與自己修改的是同一行程式碼,會傳送衝突
2.所以解決衝突,再進行提交即可

image

協同開發(拉取程式碼與自己相同問題)解決上述問題完整

1.衝突解決(多人在同一個分支開發,導致衝突)
"""
<<<<<<< HEAD  # 衝突的開始
# 自己的程式碼
=======  # 分割線
# 別人的程式碼
>>>>>>> b63c408abd05b87fc492d40523240561999dba50  # 衝突的結束(版本)
"""
# 衝突解決:
	解決方案一:
    1.改同樣的功能出現的衝突,看一下誰的程式碼更好,保留好程式碼,刪除不好程式碼
    解決方案二:
    2.改的不是同樣的功能出現了衝突,留著兩個人的
    
# 避免衝突
	1.沒事就拉一下程式碼

5 線上分支合併

1.本地建立分支,同步到遠端

# 本地建立分支,同步到遠端
-git branch dev
-git push origin dev
本地建立分支,同步到遠端順序
1.建立dev分支
git branch dev

2.切換到dev分支
git checkout dev

3.提交至版本庫
git commit -m 'dev分支更改'

4.將本地分支dev提交到遠端的master下
git push origin dev

image

引入前提遠端同步本地:
## 本地:
# 1.切換到master分支
git checkout master
# 2.強刪除dev分支(因為沒有合併普通刪除不了,使用-f 強制)
git branch -d dev -f

image

## 遠端
1.刪除上一次使用的dev分支
2.重新建立一個新的dev分支

image

1.遠端建立分支,同步到本地

# 遠端建立分支,同步到本地
-git pull origin dev
-git branch   # 看不到
-git checkout dev  #切到dev分支,本地就能看到了
遠端建立分支,同步到本地順序
1.拉取遠端master分支(沒事拉一下防止衝突)
git pull origin master

2.檢視當前分支
git branch

3.將遠端分支dev拉取到本地
git pull origin dev  # 注意因為當前dev分支什麼都沒有,所以可能git branch查詢不到,直接切換即可,在git branch就跨域看到了。

image

本地分支提交程式碼到遠端dev分支
1.切換到dev分支
git checkout dev  

2.增加資料

3.提交到快取區
git add .

4.提交至版本庫
git commit -m '提交'

5.將本地dev分支提交至遠端dev分支
git push origin dev

5.查詢當前分支
git branch

image

相關文章