微信公眾平臺開發獲取使用者基本資訊--轉
阿新 • • 發佈:2022-05-04
1、git介紹
git功能
git:程式碼版本管理工具,是一款軟體,同類型的還有svn,但是用得人較少
-版本管理
-合併程式碼
-衝突解決
git:分散式管理---》每個客戶端都能完成版本管理的功能
svn:集中式管理---》所有程式碼都放在服務端,版本管理由服務端完成(過時了)
# Git:是一種版本控制系統,是一個命令,是一種工具。 # GitHub:是一個基於Git實現的線上程式碼託管倉庫,包含一個網站介面,向網際網路開放,公有倉庫免費,部分私有倉庫收費,全球最大的開原始碼託管平臺,git的遠端倉庫# GitLab:是一個基於Git實現的線上程式碼倉庫託管軟體,可以通過GitLab自己搭建一個類似於GitHub一樣的系統,用在企業內部網路搭建Git私服,用於企業團隊內部協作開發,公司內部的github # Gitee:(碼雲) 是 OSCHINA 推出的程式碼託管平臺,支援 Git 和 SVN,提供免費的私有倉庫託管,面向網際網路開發,分免費和付費,中國最大的開原始碼託管平臺,中國版的github,為中國的開源軟體事業,貢獻自己的一份力量
2、git安裝
傻瓜式安裝一路下一步,其他都不用選
# win:下載
https://git-scm.com/download
# mac下載:
https://github.com/timcharper/git_osx_installer/releases/download/2.2.1/git-2.2.1-intel-universal-mavericks.dmg
桌面點選右鍵出現此圖示即為安裝成功
3、git工作流程
# 本地分三個區:工作區,暫存區,版本庫---->工作流程指的就是三個區的來回操作 # 工作區檔案變化 操作問題 # 工作區提交到暫存區 git add . # 暫存區提交到版本庫 git commit -m '註釋' # 版本庫退回工作區沒有更改的時候 git reset --hard 版本號 """ 1)有紅色資訊(工作區有內容),就執行 add 2)全綠資訊(內容全部在暫存區),才執行 commit 3)只有被版本庫控制的程式碼,才能被監聽,所以可以回滾到任何一個版本 """
4、git常用命令
配置使用者資訊
配置全域性使用者資訊 # 以後所有資料夾再提交到版本庫顯示的就是這個名字,所有的都顯示這個名字 # 配置的資訊寫到了使用者家路徑的 .gitconfig中 git config --global user.name 'long' git config --global user.email '[email protected]' 配置區域性使用者資訊 # 當前資料夾以後再提交到版本庫顯示的就是這個名字、 # 配置的資訊寫在了倉庫(gittest資料夾)路徑下的 .git資料夾下的config檔案 git config user.name 'liuqingzheng' git config user.email '[email protected]'
命令
# 1 初始化倉庫,會在當前資料夾下創建出一個.git的隱藏資料夾,git配置,版本資訊在裡面 git init # 2 檢視狀態--》紅色,綠色,沒有---》新增,修改,刪除--》變紅 git status # 3 把工作區變化提交到暫存區---》變綠色 git add . # . 表示當前路徑下所有變更 # 4 把暫存區提交到版本庫 ---》從綠變無色 git commit -m '註釋' # 5 檢視版本庫的版本資訊 git log # 檢視版本資訊,顯示詳細資訊,變化記錄的少 git reflog # 檢視版本資訊,顯示簡略資訊,變化都會記錄 # 6 工作區回退到某個版本 # 7c419c9934c60841cfcada07a7a9111081b58617 # 版本號 git reset --hard 7c419c9934 git reset --hard 0a5dbb0 # 7 其他,不需要太瞭解,基本不用 git checkout . # 把工作區變化撤銷 git reset HEAD # 把暫存區拉回到工作區(綠變紅) # 注意 : .git資料夾做了記錄,不能刪除,如果刪除,版本的記錄也就沒了 空資料夾不會被版本管理
5、過濾檔案
在咱們的專案中,有一些檔案/資料夾不希望被git版本管理,對此我們可以寫一個過濾檔案
# 1 在倉庫路徑下(被git管理的資料夾),建立一個 .gitignore 的檔案,在檔案中寫入忽略 # 2 檔案與資料夾均可以被過濾 # 3 檔案過濾語法
過濾檔案內容/語法
檔案或資料夾名:代表所有目錄下的同名檔案或資料夾都被過濾 /檔案或資料夾名:代表倉庫根目錄下的檔案或資料夾被過濾 舉例: a.txt:專案中所有a.txt檔案和資料夾都會被過濾 /a.txt:專案中只有根目錄下a.txt檔案和資料夾會被過濾 /b/a.txt:專案中只有根目錄下的b資料夾下的a.txt檔案和資料夾會被過濾 *x*:名字中有一個x的都會被過濾(*代表0~n個任意字元) 空資料夾不會被提交,空包會被提交,包可以被提交(包中有一個init空檔案)
專案前臺過濾檔案
前臺專案自帶過濾檔案 #專案前臺使用vue腳手架搭建 # vue create 建立過程中很慢,原因就是從github上拉了一個空專案,改了一下名字,所以,它裡面有git的版本管理(.git隱藏資料夾)
後端專案過濾檔案
# 後端專案的.gitignore .idea # 使用pycharm作為IDE時,自動生成的資料夾,用於存放專案的控制資訊 __pycache__ # 忽略所有__pycache__ 資料夾,它是.pyc檔案的資料夾 *.pyc # 為提高響應速度,cpython會在執行一次檔案後,建立.pyc結尾的相同檔案,如果專案無變化,下次直接以此檔案執行專案 logs/*.log # 忽略日誌資料夾下的日誌檔案 scripts # 忽略指令碼檔案
6、分支操作
git 可以建立多條分支,建立完以後,在不通分支上提交版本,不通分支的版本相互不影響
master 主分支
dev 開發分支
注意:分支合併可能會出衝突,原因是master改了東西提交了,dev改了東西提交了,他們改的是同一個程式碼,合併就會出衝突
# 1.建立分支 git branch 分支名 # 2.檢視分支 git branch # 3.切換分支 git checkout 分支名 # 4.建立並切換到分支 git checkout -b 分支名 # 5.刪除分支 git branch -d 分支名 # 6.檢視遠端分支(暫時先不看) git branch -a # 7.合併分支 git merge 分支名 把dev分支合併到master分支:切換到master分支,執行合併dev分支的命令
7、git遠端倉庫
1 建立遠端空倉庫
# 遠端倉庫 第三方:gitee,github,bitbucket 自己搭建:gitlab 我們把本地版本庫中的程式碼提交到遠端倉庫,多人合作都可以提交,最後完成程式碼合併,協同開發 如果公司中用gitee,都是用私有倉庫,不要把公司程式碼做成公有倉庫 我的課程案例是傳到gitee遠端倉庫(需註冊‘’):https://gitee.com/
如果到了公司裡使用的是gitlab,所有操作完全一致,只是遠端地址不一樣
2 原生代碼提交到遠端倉庫
# 第一步:在遠端建立一個空倉庫 # 第二步:操作步驟 # 1 全域性設定(已設定可以忽略) git config --global user.name "liuqingzheng" git config --global user.email "[email protected]" # 2.1 情況一:原來連本地倉庫都沒有 mkdir luffy_api # 建立luffy_api資料夾 cd luffy_api‘ # 切換到luffy_api資料夾 git init # 初始化本地倉庫,可以被git管理 touch README.md # 本地倉庫建立readme檔案 git add README.md # 從工作區提交readme檔案到暫存區 git commit -m "first commit" # 從暫存區提交readme檔案到版本庫 (但是這些操作在之前已經做過,所以可以直接從下面開始,這也是情況二的步驟) git remote add origin https://gitee.com/liuqingzheng/luffy_api.git # 新增一個遠端倉庫(利用http連線) git push origin master # 把本地倉庫推到遠端 # 2.2 情況二:原來本地有倉庫 cd 目錄 git remote add origin https://gitee.com/liuqingzheng/luffy_api.git git push origin master
3 remote源操作
# 1 檢視遠端倉庫 git remote #2 新增遠端倉庫(利用http方式) # git remote add 起一個名字 遠端倉庫地址 git remote add origin https://gitee.com/liuqingzheng/luffy_api.git # 3 刪除遠端倉庫 git remote remove origin #4 把本地倉庫提交到遠端倉庫 # git push 遠端倉庫名字 分支名 # 第一次:要輸入使用者名稱密碼,只要輸入一次,以後就記錄到作業系統上了 # win:控制面板-使用者賬戶-憑證管理器--》使用者密碼可以在這裡更新或刪除(詳細見下圖) # mac:鑰匙串---》搜 git push origin master #5 從遠端倉庫更新程式碼 # git pull 遠端倉庫名字 分支名 git pull origin master # 協同開發---》張三提交了程式碼到遠端---》你要拉下來,把張三程式碼合併到你的本地 ### 注意點: 在公司裡,沒事就git pull 一下,拉取程式碼的頻率高,出現衝突的概率就小 寫了一個星期程式碼,從來沒有拉過,你也改了s1.py s5.py 這一個星期張三,李四王五,分別改了s1.py s2.py s3.py 你一提交---》多人在同一條分支上開發程式碼出現的衝突,出衝突了,需要解決衝突 ##### 這幾個會經常敲 git add . git status git commit -m git pull origin master git push origin master
4 ssh連線
# 剛剛咱們用的是https的連線方式,需要輸入使用者名稱密碼 # 想使用ssh的連線方式,採用非對稱加密的方式實現(不聊),需要公鑰和私鑰--》把公鑰配置到遠端機器,私鑰自己留著---》我和遠端機器就可以安全通訊 # 本地生成一對祕鑰:公鑰和私鑰 # ssh-keygen -t ed25519 -C "郵箱/電話號碼" ssh-keygen -t ed25519 -C "[email protected]" 一路回車,就會在使用者家路徑的.ssh資料夾下生成一對公鑰和私鑰 把公鑰配置到gitee上(gitlab,github) (看下面兩張圖) # 以後不需要輸使用者名稱密碼,可以安全通訊,pull,push程式碼沒有任何阻礙 ######### 遠端倉庫地址要變 ,原來是https的,現在變成ssh的連線 git remote remove origin # 先刪除原來的遠端倉庫連線 git remote add origin [email protected]:liuqingzheng/luffy_api.git # 再利用ssh連線遠端倉庫(ssh連結地址見下圖) git push oringin master # 再提交到分支 ### 注意: 你的一個gitee賬號,可以配置多個ssh公鑰,如果你配置了多個ssh公鑰,意味著有多臺機器可以免密操作倉庫 公司裡ssh用的多 你到了公司,公司會給你gitlab賬號和密碼,地址,你要在本地生成ssh公鑰和私鑰,配置到你的gitee,gitlab上
公鑰私鑰儲存位置:
gitee配入公鑰:
ssh連線地址:
5 協同開發
# 多人操作同一個倉庫,多人寫同一個專案 # 剛到公司,一般情況下,你會被新增為該倉庫的觀察者,你目前只能看,不能改,刪 # 但是也有的公司直接給你開發者許可權---》直接修改提交程式碼就行了 # 你們是開發者,第一次要clone程式碼 git clone https://gitee.com/liuqingzheng/luffy_api.git # 開發者可以修改並提交程式碼,沒有人稽核---》這個過程中可能會出衝突
pycharm圖形化介面操作