【windows + 視窗】 通過FindWindow操作視窗
阿新 • • 發佈:2020-12-21
一:介紹
1.什麼是git?
是一種用於協同開發的版本管理工具
2.git能幹什麼?
完成協同開發
專案,幫助程式設計師整合程式碼
- 幫助開發者合併開發的程式碼
- 如果出現衝突程式碼的合併,會提示後 提交合並程式碼的開發者,讓其解決衝突
2種Git軟體:SVN、Git
- svn(集中式管理)
- git(分散式管理、協同開發、版本管理)
常用的git版本控制器管理程式碼的公共平臺
- github
- gitee
3.Github、Gitee、Gitlab的區別
- Github:一般開源的程式碼都放在github,程式碼託管平臺(公有倉庫、私有倉庫),公司程式碼一般不會放在上面
- Gitee:中國版本的github,開源低嗎放在共有倉庫,有一部分公司的程式碼會託管到gitee的私有倉庫
- Gitlab:公司自己搭建的github,公司內部自己訪問(可以用Docker拉1個gitlab的映象跑起來)
4.下載連結:https://git-scm.com/
5.安裝
一路下一步即可
6.整體流程
1.有紅色資訊(工作區有內容),就執行 add
2.全綠資訊(內容全部在暫存區),才執行 commit
3.只有被版本庫控制的程式碼,才能被監聽,所以可以回滾到任何一個版本
一:核心操作
1.初始化倉庫
git init
.git目錄
預設隱藏,可以通過命令ls -ah顯示
2.把檔案新增到暫存區
新增指定檔案
git add 檔名
一次新增多個檔案
git add .
3.提交暫存區內容到版本庫
git commit -m '本次提交的說明'
4.把專案提交到(遠端)倉儲
git push
5.撤銷暫存區提交:add的逆運算(很少使用)
①撤銷所有暫存區的提交
git reset HEAD .
②撤銷某一檔案的暫存區提交
git reset 檔名
③撤銷所有暫存區的提交
git reset .
6.過濾檔案
①.gitignore 檔案
1.在倉庫根目錄下建立該檔案 2.檔案與資料夾均可以被過濾 3.檔案過濾語法
②過濾檔案內容
檔案或資料夾名:代表所有目錄下的同名檔案或資料夾都被過濾
/檔案或資料夾名:代表倉庫根目錄下的檔案或資料夾被過濾
③eg:
a.txt:專案中所有a.txt檔案和資料夾都會被過濾 /a.txt:專案中只有根目錄下a.txt檔案和資料夾會被過濾 /b/a.txt:專案中只有根目錄下的b資料夾下的a.txt檔案和資料夾會被過濾 *x*:名字中有一個x的都會被過濾(*代表0~n個任意字元) 空資料夾不會被提交,空包會被提交,包可以被提交(包中有一個init空檔案)
7.檢視倉庫當前的狀態
檢視狀態(紅色和綠色),必須全綠再提交到版本庫
git status
8.檢視提交日誌
git log
9.回退版本
①回退到上一版本
git reset --hard HEAD^
②回退到上上版本
git reset --hard HEAD^^
③撤銷所有暫存區的提交
git reset .
10.視窗關閉後回退版本
用來記錄你的每一次命令
git reflog
二:使用者操作
1.設定全域性使用者
git config --global user.name '使用者名稱' git config --global user.email '使用者郵箱'
在全域性檔案C:\Users\使用者資料夾\.gitconfig
新建使用者資訊,在所有倉庫下都可以使用
2.設定區域性使用者
git config user.name '使用者名稱' git config user.email '使用者郵箱'
在當前倉庫下的config新建使用者資訊,只能在當前倉庫下使用
一個倉庫有區域性使用者,優先使用區域性使用者,沒有配置再找全域性使用者
三:分支管理
1.檢視遠端分支
git branch -a
2.檢視本地分支
git branch
3.建立並切換分支
(加-b表示建立並切換)
git checkout -b 分支名
4.切換回分支
git checkout 分支名
5.從主分支裡建立新分支
git checkout master -b 新分支名
6.合併某分支到當前分支
git merge 分支名
7.刪除分支
git branch -d 分支名
git branch -D 分支名 (強行刪除分支)
四:git遠端連線
1.無倉庫,需要新建
mkdir test cd test git init touch a.txt git add a.txt git commit -m "添加了a.txt" git remote add origin 已有倉庫 # 連線遠端 git push origin master
2.已有倉庫
cd test
git remote add origin 已有倉庫 # 連線遠端
git push origin master
3.檢視遠端倉庫(沒有就看不到)
git remote
4.線上回滾
# 1 切換到master分支 # 2 回滾打某個版本 git reset --hard 版本號 # 3 強制提交程式碼 git push origin master -f
五:解決衝突
1.情況1
A和B同時開發專案並且都將伺服器的分支程式碼拉(pull)到自己電腦上
A開發完後,將自己的專案推(push)到了伺服器的分支
A和B修改的是同一行程式碼
B開發完後,沒有先拉(pull),而是直接將自己的專案推(push)到了伺服器的分支
此時,出現了衝突,這個衝突需要由B解決
解決方法:
git merge A_master (在B_dev分支上操作) -解決衝突(刪你的,同事的,合併起來) git add . git commit -正常了,衝突解決
2.情況2
master分支上a.py中的第10行程式碼為 x = 1 dev分支上a.py中的第10行程式碼為 x = 99 在master分支合併dev分支 此時同一個檔案的同一行程式碼,在2個分支不同,出現了衝突
解決方法:
# 手動線下合併程式碼並提交到遠端 git checkout master git merge dev -如果出衝突,解決 -git add . -git commit -git push..
五:git專案創始者和開發者
1.專案創世者
負責分支的建立和管理
2.專案開發者
把專案拉下來,繼續開發
git clone https://gitee.com/xxxxxx/xxxx.git -能看到完整的版本和日誌控制 -可以回覆到任意版本 git rest --hard 版本號 git checkout . # 表示回到指標指向的版本,因為已經用git rest --hard把指標移動了,所以checkout .就是當前再的版本上的東西 #本地新增c.txt檔案 -提交到暫存區 -提交到版本庫(沒有提交到遠端,遠端看不到) -提交到遠端:git push origin master # 讓a資料夾中的程式碼成為最新的 -git pull origin master
重點:每次再提交程式碼之前,一定要先更新程式碼(拉),如果不拉提不上去
六:ssh連線和https連線
1.公司內部大部分用ssh連線
-領導給你一個git地址(專案地址) -你 git clone 地址 到本地 -改程式碼,改完了---》提交(禁止) -ssh配置,以後都不用輸密碼了
2.配置如何做
-對稱加密(加密和解密用同一套祕密) -非對稱加密(公鑰和私鑰),公鑰加密,私鑰解密 -生成一對公鑰和私鑰(用命令) -https://gitee.com/help/articles/4181 -ssh-keygen -t rsa -C "[email protected]" 生成到使用者家目錄的.ssh資料夾下(一個公鑰,一個私鑰) -把公鑰複製出來,去碼雲上配置
3.跟遠端操作有三個命令
git pull
git push
-git feacth(一般不用,他跟pull是一個東西,當作不知道)
七:pycharm操作git
1.建立一個資料夾,右鍵Git Bash here
,輸入下面命令
git init
此時,會生成一個.git
的隱藏資料夾
2.將專案克隆下來
git clone https://xxxxx.gitee.com.xxx.git
3.右鍵 - 用pycharm開啟
4.點選左上角:File - Settings,進行如圖操作,可以獲取到Git當前版本
5.2個按鈕的功能
6.更多功能
7.一步到位的操作(修改+新增到暫存區+註釋並新增到版本庫+push到遠端倉庫)
八:其他操作
1.檢視ssh
金鑰
①進入.ssh目錄
cd ~/.ssh
②檢視id_rsa.pub檔案
cat id_rsa.pub
2.克隆遠端專案
git clone 遠端源地址
3.刪除檔案
①刪除版本庫中的檔案
git rm filename
②恢復工作區中誤刪的檔案
git checkout -- filename
PS:git checkout其實是用版本庫裡的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”
4.遠端倉儲
①建立ssh key金鑰
ssh-keygen -t rsa -C "[email protected]"
②在遠端倉庫中新增ssh公鑰
③關聯遠端庫
git remote add origin git@server-name:path/repo-name.git
④第一次推送master分支的所有內容,此後只需要使用git push origin master即可推送最新修改
git push -u origin master
5.多人協作
①檢視遠端倉儲的詳細資訊
git remote -v
②推送本地分支到遠端倉庫
git push origin 本地分支名
如果發生衝突,用git pull試圖合併,如果發生衝突則解決衝突,再進行推送
如果git pull後提示no tracking information(沒有追蹤資訊),則進行第四項,建立關聯,之後pull,有衝突再合併
③在本地建立和遠端分支對應的分支
git checkout -b 本地分支 origin/遠端分支名
④建立本地分支和遠端分支的關聯
git branch --set-upstream 本地分支名 origin/遠端分支名
6.分支策略
1.master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
2.幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本釋出時,再把dev分支合併到master上,在master分支釋出1.0版本;
3.每個人都有自己的分支,時不時地往dev分支上合併就可以了
7.git fetch和git pull的區別
與git pull相比git fetch相當於是從遠端獲取最新版本到本地,但不會自動merge。如果需要有選擇的合併git fetch是更好的選擇。效果相同時git pull將更為快捷。
九:修改已有專案的流程
1.初始化倉庫
git init
2.設定區域性使用者
git config user.name '使用者名稱' git config user.email '使用者郵箱'
3.新增已有倉庫
git remote add origin 已有倉庫
4.把專案拉下來
- 拉下來不是一個專案資料夾,而是專案中的許多檔案和資料夾
git pull 倉庫地址
5.修改好專案
6.新增到版本庫
git add .
7.提交註解(此次操作修改了什麼等)
git commit -m '修改的內容'
8.推到遠端倉庫
git push origin master