標簽:python 文件夾 建立 默認 根據 選擇 概念 結束 文件名
.svn
、.cvs
等的文件夾里SHA-1
哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞windows 安裝:進入網站 https://git-scm.com/ 下載安裝,然后在 cmd 命令行配置
# 創建 git 用戶
> git config --global user.name "Felix"
> git config --global user.email "Felix@126.com"
# 檢查信息是否寫入
> git config --list
ubuntu 配置:apt-get install git
Git 的工作流程基本上分為工作區、暫存區和版本庫
.git
目錄下的 index
文件中,所以暫存區有時也叫作索引.git
,這個不算工作區,而是 Git 的版本庫?
Git 使用 git init
命令來初始化一個 Git 倉庫,由于 Git 很多命令都需要在 Git 倉庫中運行, git init
很重要
在執行完成 git init
命令后,Git 倉庫會生成一個 .git
目錄,該目錄包含了資源的所有數據,其他的項目目錄保持不變(不像 SVN 會在每個子目錄生成 .svn
目錄,Git 只在倉庫的根目錄生成 .git
目錄)
使用方法
git init
該命令執行完后會在當前目錄生成一個 .git
目錄,
git init 文件名
初始化后,會在該文件目錄下會出現一個名為 .git
的目錄,所有 Git 需要的數據和資源都存放在這個目錄中
使用 Git 的時候也需要創建用戶,其中用戶也分為全局用戶和局部用戶
git config --global user.name ‘用戶名‘
git config --global user.email ‘用戶郵箱‘
# 注:在全局文件 C:\Users\用戶文件夾\.gitconfig 下新建用戶信息,可以在所有倉庫都可以使用
git config user.name ‘用戶名‘
git config user.email ‘用戶郵箱‘
# 注:在當前倉庫下的 config 新建用戶信息,只能在當前倉庫下使用
# 注:一個倉庫有局部用戶,優先使用局部用戶,沒有配置再找全局用戶
當倉庫中有文件增加、刪除、修改,都可以在倉庫狀態中查看
# 查看倉庫狀態
git status
# 查看倉庫狀態的簡約顯示
git status -s
在工作區中通過任何方式完成的文件刪與改都會被 Git 記錄,而空文件夾不會被 Git 記錄
# 撤銷所有暫存區的提交
git checkout
# 撤銷某一文件的暫存區提交
git checkout 文件名
# 添加指定文件
git add 文件名
# 添加項目中所有文件
git add .
# 撤銷所有暫存區的提交
git reset HEAD
# 撤銷某一文件的暫存區提交
git reset 文件名
# 撤銷所有暫存區的提價
git reset .
git commit -m "版本描述信息"
# 查看歷史版本
git log
git reflog
# 查看時間點之前的或者之后的日志
git log --after 2020-07-21
git log --before 2020-07-21
git reflog --after 2020-07-21
git reflog --before 2020-07-21
# 查看指定開發者日志
git log --author 作者名字
git reflog --author 作者名字
# 回滾到指定版本
# 回滾到上一版本
git reset --hard HEAD^
git reset --hard HEAD~
# 回滾到上三個版本
git reset --hard HEAD^^^
git reset --hard HEAD~3
# 回滾到指定版本號的版本
git reset --hard 版本號
在日常開發中總有幾個文件不需要被管理,那么如何讓 Git 不管理這些文件呢?需要創建 .gitignore
文件
# 1) 在倉庫根目錄下創建該文件
# 2) 文件與文件夾均可以被過濾
# 3) 文件過濾語法
那如何定義這些被過濾的文件呢?
# 文件或文件夾名:代表所有目錄下的同名文件或文件夾都被過濾
# /文件或文件夾名:代表倉庫根目錄下的文件或文件夾被過濾
a.txt:項目中所有 a.txt 文件和文件夾都會被過濾
/a.txt:項目中只有根目錄下 a.txt 文件和文件夾會被過濾
/b/a.txt:項目中只有根目錄下的 b 文件夾下的 a.txt 文件和文件夾會被過濾
*x*:名字中有一個 x 的都會被過濾(* 代表 0~n 個任意字符)
空文件夾不會被提交,空包會被提交,包可以被提交(包中有一個init空文件)
在實際項目中,一個項目需要多人一起協同開發,這就涉及到了多分支開發的概念
指令 | 詳解 |
---|---|
git branch 分支名 |
創建分支 |
git branch |
查看分支 |
git checkout 分支名 |
切換分支 |
git checkout -b 分支名 |
創建并切換到分支 |
git branch -d 分支名 |
刪除分支 |
git branch -a |
查看遠程分支 |
git merge 分支名 |
合并分支 |
# 1)多個開發者都是在一個分支上進行開發,不出意外,該分支一定叫 dev(協同開發)
# 2)如果出現一個特殊任務(敏感任務),與正常業務關系不緊密,甚至可能大的影響正常的 dev 分支開發,可以依賴 dev 開一個子分支,進行開發,開發完畢后合并到 dev 分支,再刪除該分支即可
# 3)所有的開發任務都可以在 dev 分支上進行(除非公司硬性要求不能直接在 dev 分支開發,只能在 dev 子分支開發,測試通過后才能合并給 dev)
既然要進行多分支開發,當然也需要遠程倉庫的存在,所以就有一些人搭建了倉庫,常見的遠程倉庫有 GitHub、Gitee 以及公司自己搭建的 GitLab
"""
1)作為項目倉庫初始化人員:
線上要創建空倉庫 => 本地初始化好倉庫 => 建立 remote 鏈接(remote add) => 提交本地倉庫到遠程(push)
2)作為項目后期開發人員:
遠程項目倉庫已經創建成功 => 復制遠程倉庫到本地(clone) => 進入倉庫就可以進行接下來的開發
"""
"""
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 都可以提供選擇不同的源碼,和不同的遠程倉庫交互
"""
# 官網:https://gitee.com/help/articles/4181#article-header0
# 本機命令,生成公鑰:ssh-keygen -t rsa -C "*@*.com",郵箱可以任意填寫
# 本機命令,查看公鑰:cat ~/.ssh/id_rsa.pub
# 碼云線上添加公鑰:項目倉庫 => 管理 => 部署公鑰管理 => 添加公鑰 => 添加個人公鑰
# 命令
git push origin master
"""
1)生成自己電腦的公鑰,配置到自己的碼云個人公鑰中
2)把自己的碼云用戶名提供給別人,別人添加你成為項目開發者
3)自己確認添加,成為開發者,克隆開發項目,進行開發
"""
"""
1)生成自己電腦的公鑰(公鑰生成一次就可以了),把它提交給項目管理者
2)項目管理者添加你公鑰,加入開發者,提供給你項目克隆地址
3)克隆開發項目,進行開發
"""
"""
1)作為開發者,第一次同步項目(前臺已經是項目開發者了)
git clone 項目地址
2)保證自己本地有 dev 分支,且與遠程倉庫版本同步(沒有就自己新建)
3)本地開發的代碼,必須 add、commit 到本地版本庫后,才和遠程倉庫進行交互
4)交互順序:必須 先拉(pull)后提(push)
5)必須切換到要交互的分支,在與遠程同名的分支進行交互,如本地 dev 與遠程 dev 交互
git checkout dev
git add .
git commit -m ‘本次提交的信息提示‘
git pull origin dev
git push origin dev
"""
"""
1)在遠程倉庫和本地倉庫版本不一致時,拉取遠程倉庫版本到本地時,兩個版本進入融合,可能會出現版本沖突
2)定位沖突文件沖突代碼,線下溝通沖突代碼,整合代碼解決沖突
3)將解決沖突后的代碼重新提交到本地版本庫
4)再拉去遠程倉庫,直到沒有沖突,提交本地版本庫到遠程
"""
"""
<<<<<<< HEAD # 沖突的開始
# 自己的代碼
======= # 分割線
# 別人的代碼
>>>>>>> b63c408abd05b87fc492d40523240561999dba50 # 沖突的結束(版本)
"""
"""
1)刪除沖突相關標識:沖突的開始、分割線、沖突的結束(版本)
2)線下溝通,根據實際需求完成代碼整合
3)測試整合后的代碼
"""
"""
出現沖突的前提:
1)不同開發者同時操作了同一文件
2)并且在相同行寫了代碼
強調:有業務交際時,版本合并不一定會出現沖突相關的標識,但是可能會帶著代碼運行崩潰,所有理論上每一次版本合并,都要測試合并后的所有功能(及其之少的情況)
"""
"""
用dev分支舉例
1)本地切換到遠程要回滾的分支對應的本地分支
git checkout dev
2)回滾本地分支
git reset --hard 版本號
3)本地版本強行提交給服務器
git push origin dev -f
"""
標簽:python 文件夾 建立 默認 根據 選擇 概念 結束 文件名
原文地址:https://www.cnblogs.com/bailongcaptain/p/13356975.html