1. 程式人生 > 實用技巧 >git——版本控制及衝突解決

git——版本控制及衝突解決

協同開發,版本管理
svn(集中式管理),git(分散式管理)
遠端倉庫:github,碼雲,公司內部(gitlab)

配置資訊 全域性
git config --global user.email "[email protected]"
git config --global user.name "lqz"

git config  user.email "[email protected]"
git config  user.name "egon"

-工作區,暫存區,版本庫

	-git init   # 初始化,生成一個.git 的資料夾
    -git stauts # 檢視狀態(紅色和綠色),必須全綠再提交到版本庫
	-git add .  # 提交到暫存區  git add a.txt
    -git commit -m '註釋'  # 從暫存區提交到版本庫
    -git checkout . # 把工作區的內容恢復到版本庫中最新的版本
    -git reset .   # 把暫存區的東西拉回到工作區(原來是綠的變紅了)
    # 紅色表示未被管理
	# 綠色表示提交到暫存區
    -git reset --hard 版本號  # 回退到某個版本
    -git log   # 檢視版本管理的日誌
    -git reflog # 檢視日誌,條數更多,內容更少
    
分支
    -git branch  # 檢視所有分支,如果分支是綠色,表示是當前分支
    -git branch 分支名  # 建立分支
    -git chekout dev  # 切換到dev分支
    -git chekout -b dev2 # 建立並切換到dev2分支
    -git branch -d dev2 # 刪除dev2分支,不能再這個分支上
    -git merge dev   # 你必須再其他分支(master),合併dev
    
忽略檔案
	-空資料夾不被管理
	-指定某些檔案或者資料夾不被git管理
    -在專案根路徑,跟.git資料夾一個路徑,新建.gitignore.,在裡面配置
    - 語法:
    	# 號是註釋,沒有用
        資料夾名字,表示資料夾忽略,不被管理
        /dist 表示根路徑下的dist資料夾,不被管理
        *.py   表示字尾名為py的檔案,都被忽略
        *.log*

git:

https://mp.weixin.qq.com/s?src=11&timestamp=1595294809&ver=2473&signature=teq192g3C6PFJIKUALY9HIBjO20aZeAL*Ms35fwJSYWbLjNfyouwjsxmzCnxdLpb5evdqZG-PByoFSHAaGRGqaNNNFsz2z2Pa-k02-4fXLVJxqovhETTxT56lzDDSa61&new=1

1 git初始化,提交內容,遠端連線

    git init   初始化一個本地資料夾為git管理的庫
    
    git add a.txt  提交到暫存區
    git commit -m "first commit"   提交到版本庫
    
    git remote   檢視有哪些連線
    git remote add origin https://gitee.com/liuqingzheng/lqz_test.git  建立遠端連線
    git push origin master   將修改 提交到 origin連線的 master分支上

ssh連線和https連線

# 1 公司內部大部分用ssh連線
    ssh配置,不用輸密碼
# 2 配置如何做
公鑰和私鑰 使用者家目錄的.ssh資料夾下(一個公鑰,一個私鑰)
        生成祕鑰,如果沒有-ssh-keygen -t rsa -C "[email protected]"  
        把公鑰複製出來,在碼雲上配置
        
對稱加密和非對稱加密
	-對稱加密(加密和解密用同一套祕密,共享祕鑰)
    -非對稱加密(公鑰和私鑰),公鑰加密,私鑰解密

2 git開發者

1 將庫的程式碼clone下來,得到管理的庫,完整的 版本 和 日誌控制
	git clone https://gitee.com/liuqingzheng/lqz_test.git

    回覆到任意版本
    git rest --hard 版本號 
    git checkout . 
    回到指標指向的版本,因為已經用git rest --hard把指標移動了,所以checkout .就是當前版本
    
2 pull程式碼,更新資料夾為最新的
	git pull origin master
    
3 push程式碼,每次push程式碼,一定要先pull,再push,可能有衝突

# 跟遠端操作有三個命令
git pull
git push
-git feacth(一般不用,他跟pull是一個東西,當作不知道)

pycharm操作git

在pycharm中操作git時,首先要在pycharm中配置,setting---》git--->git.exe的地址
git clone

出現衝突解決

pull程式碼出現衝突 提交程式碼

git pull origin master  拉下遠端程式碼,兩個人修改了同一個位置,會衝突

<<<<<<< HEAD
你的程式碼
=======
別人程式碼
>>>>>>> origin/master

處理方案
    -刪除自己的程式碼
    -刪除別人的程式碼
    -合併程式碼
合併分支衝突  手動線下合併程式碼並提交到遠端 
	-git checkout master
    -git merge dev 
    -如果出衝突,解決
    -git add .
    -git commit 
    -git push
    
    -解決衝突(刪你的,同事的,合併起來)
    -git add .  git commit 

3 線下回滾,並提交

# 1 切換到master分支
# 2 回滾打某個版本  git reset --hard  版本號
# 3 強制提交程式碼 git push origin master -f

1 pycharm找回誤刪,修改的東西

history

2 git的變基

git rebase