git介紹 什麼是git git是一種版本控制器 - 控制的對象是開發的項目代碼 什麼是版本控制器 完成 協同開發 項目,幫助程式員整合代碼 i)幫助開發者合併開發的代碼 ii)如果出現衝突代碼的合併,會提示後提交合併代碼的開發者,讓其解決衝突 軟體:SVN 、 GIT(都是同一個人的個人項目) g ...
git介紹
什麼是git
git是一種版本控制器 - 控制的對象是開發的項目代碼
什麼是版本控制器
完成 協同開發 項目,幫助程式員整合代碼
i)幫助開發者合併開發的代碼
ii)如果出現衝突代碼的合併,會提示後提交合併代碼的開發者,讓其解決衝突
軟體:SVN 、 GIT(都是同一個人的個人項目)
github、gitee(兩個採用git版本控制器管理代碼的公共平臺)
git特點:集群化、多分支
git與svn比較
git的工作流程
版本庫間的通信
git分支管理(重點)
git的使用
安裝
安裝網址:https://git-scm.com/download/win
直接下一步安裝即可!
git的基礎命令
將已有的文件夾 - 初始化為git倉庫
>: cd 目標文件夾內部
>: git init
或者
>: git init 文件夾名
>: git init (不加表示將當前路徑下全部初始化管理)
查看倉庫狀態
# 當倉庫中有文件增加、刪除、修改,都可以在倉庫狀態中查看
>: git status
-- 查看倉庫狀態
>: git status -s
-- 查看倉庫狀態的簡約顯示
將工作區內容提交到暫存區
>: git add .
-- 添加項目中所有文件
>: git add 文件名
-- 添加指定文件
撤銷暫存區提交:add的逆運算(很少使用)
>: git reset HEAD .
-- 撤銷所有暫存區的提交
>: git reset 文件名
-- 撤銷某一文件的暫存區提交
>: git reset .
-- 撤銷所有暫存區的提交
提交暫存區內容到版本庫
>: git commit -m "版本描述信息"
一定要加版本描述信息,不然報錯
註:提交之前一定要先設置全局或者局部用戶
在倉庫目錄終端下 - 設置全局用戶
>: git config --global user.name '用戶名'
>: git config --global user.email '用戶郵箱'
註:在全局文件 C:\Users\用戶文件夾\.gitconfig新建用戶信息,在所有倉庫下都可以使用
在倉庫目錄終端下 - 設置局部用戶
>: git config user.name '用戶名'
-- 用戶名
>: git config user.email '用戶郵箱'
-- 用戶郵箱
註:在當前倉庫下的config新建用戶信息,只能在當前倉庫下使用
註:一個倉庫有局部用戶,優先使用局部用戶,沒有配置再找全局用戶
撤銷工作區操作:改、刪(瞭解)
>: git checkout .
-- 撤銷所有暫存區的提交
>: git checkout 文件名
-- 撤銷某一文件的暫存區提交
撤銷版本庫提交:commit的逆運算
回滾暫存區已經提交到版本庫的操作:
查看歷史版本:
>: git log
>: git reflog
查看時間點之前|之後的日誌:
>: git log --after 2018-6-1
>: git log --before 2018-6-1
>: git reflog --after 2018-6-1
>: git reflog --before 2018-6-1
查看指定開發者日誌
>: git log --author author_name
>: git reflog --author author_name
回滾到指定版本:
回滾到上一個版本:
>: git reset --hard HEAD^
>: git reset --hard HEAD~
回滾到上三個版本:
>: git reset --hard HEAD^^^
>: git reset --hard HEAD~3
回滾到指定版本號的版本:
>: git reset --hard 版本號 (重點)
>: eg: git reset --hard 35cb292
版本號可以通過git log 查看到
過濾文件
過濾文件的意思是指定某些文件或者文件夾不被git管理
# .gitignore 文件
# 1)在倉庫根目錄下創建該文件
# 2)文件與文件夾均可以被過濾
# 3)文件過濾語法
""" 過濾文件內容
文件或文件夾名:代表所有目錄下的同名文件或文件夾都被過濾
/文件或文件夾名:代表倉庫根目錄下的文件或文件夾被過濾
eg:
a.txt:項目中所有a.txt文件和文件夾都會被過濾
/a.txt:項目中只
有根目錄下a.txt文件和文件夾會被過濾
/b/a.txt:項目中只有根目錄下的b文件夾下的a.txt文件和文件夾會被過濾
*x*:名字中有一個x的都會被過濾(*代表0~n個任意字元)
空文件夾不會被提交,空包會被提交,包可以被提交(包中有一個init空文件)
git的多分支開發
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分支的命令
"""
"""
1)多個開發者都是在一個分支上進行開發,不出意外,該分支一定叫dev(協同開發)
2)如果出現一個特殊任務(敏感任務),與正常業務關係不緊密,甚至可能大的影響正常的dev分支開發,可以依賴dev開一個子分支,進行開發,開發完畢後合併到dev分支,再刪除該分支即可
3)所有的開發任務都可以在dev分支上進行(除非公司硬性要求不能直接在dev分支開發,只能在dev子分支開發,測試通過後才能合併給dev)
git遠程開發
"""
1)你作為項目倉庫初始化人員:
線上要創建空倉庫 => 本地初始化好倉庫 => 建立remote鏈接(remote add) => 提交本地倉庫到遠程(push)
2)你作為項目後期開發人員:
遠程項目倉庫已經創建成功 => 複製遠程倉庫到本地(clone) => 進入倉庫就可以進行接下來的開發
"""
測試:自己創建空倉庫
如何連接遠程倉庫
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 [email protected]:doctor_owen/luffyapi.git
5)提交代碼到遠程源
>: git push 源名 分支名
(需要輸入用戶名和密碼就是遠程倉庫的賬號和密碼)你之前在自己機器上存的需要到控制面板--用戶--管理windows憑據中刪掉
6)克隆遠程源
>: git clone 遠程源地址
7)更新本地庫
git pull origin master(分支名)
"""
"""
1)通過克隆方式連接遠程源,預設遠程源名就叫origin;所以主動添加遠程源來連接遠程倉庫,源碼也用origin
2)本地一個倉庫只需要和遠程一個源進行同步,所以只需要連接一個遠程源,如果還想把本地代碼同步給第三個平臺,那麼可以通過主動添加遠程源來連接第三個平臺的遠程倉庫,此時的源碼就不能再叫origin了,比如online都可以
3)pull和push都可以提供選擇不同的源碼,和不同的遠程倉庫交互
重點:每次向遠程庫提交代碼時,一定要先更新代碼,就是把遠程庫先拉下來一下,再提交,如果不拉就提交不上去
使用ssh和https連接遠程庫
# 1 公司內部大部分用ssh連接遠程庫
-領導給你一個git地址(項目地址)
-你 一般先git clone 地址 到本地
-改代碼,改完了---》提交(沒有密碼賬戶都禁止)
-改用ssh配置,以後都不用輸密碼了
# 2 配置如何做
先瞭解對稱加密和非對稱加密
-對稱加密(加密和解密用同一套秘密)
-非對稱加密(公鑰和私鑰),公鑰加密,私鑰解密
-生成一對公鑰和私鑰(用命令)
-https://gitee.com/help/articles/4181 詳情操作查看這個鏈接
-ssh-keygen -t rsa -C "[email protected]"(郵箱可以隨便填) 生成到用戶家目錄的.ssh文件夾下(一個公鑰,一個私鑰)
-把公鑰複製出來,再碼雲上配置
# 跟遠程操作有三個命令
git pull
git push
-git feacth(一般不用,他跟pull是一個東西,當作不知道)
pycharm連接git
1.安裝git
2.在pycharm中的settings里的git配置好git.exe的地址
3.pycharm中git里進行對應的操作