Git
git的工作流程
基本流程
git pull
一疮方、Git的安裝
https://git-scm.com/download/win
下載地址
GITHUB下載比較慢拄显,我們可以去國內(nèi)鏡像下載 https://npm.taobao.org/mirrors/git-for-windows/
下載之后一直下一步安裝完即可。
安裝完成后案站,郵件會多出來2個(gè)git開頭的選項(xiàng)
雙擊GIt Bash Here. 在這種命令窗口下可以使用linux命名躬审。
出現(xiàn)如下畫面就可以輸入git命令了
命令
1. git init
git init xxx
初始化 新建立一個(gè)代碼倉庫
然后adeng文件夾下面會多出來一個(gè).get的文件夾
.git 文件夾下面有如下文件
.git下面的文件不要刪棘街,刪了就不會被管理了
2. git add .
git add a.txt
將a.txt文件提交到管理區(qū)。git status查看狀態(tài) 文件是綠色
表示在暫存區(qū)承边。紅色表示未被管理遭殉。如下圖:
3. git commit -m "本次提交說明"
git commit 提交到版本庫
第一次使用git commit -m "xxx"會出現(xiàn)如下畫面
git config --global user.name "這里是你的github用戶名"
git config --global user.email xxx@xxx.com(你的郵箱)
怎么解決呢:
一次輸入兩行命名就行。
再次輸入git commit -m "新增修改a文件數(shù)據(jù)"
就沒有報(bào)錯(cuò)了
會在用戶目錄下有個(gè).gitconfig文件博助,內(nèi)容就是上面敲的2條命令中的 郵箱和用戶名
4. git checkout . 當(dāng)前路徑下的文件回滾到提交前版本
上面我修改了a.txt文件的數(shù)據(jù)险污。
之前是沒有數(shù)據(jù)的。現(xiàn)在a.txt已經(jīng)在版本庫里面了富岳。這時(shí)候執(zhí)行g(shù)it checkout . 就會回到提交前蛔糯。
5.git log 查看版本管理日志
- git reflog 顯示當(dāng)前分支最近提交
6. git status 查看狀態(tài)
7.git reset --hard 版本
版本號就是commit后面那一串字符,可以不用寫全窖式。如下
8. 如何忽略文件
- 新建的空文件夾蚁飒,不會被管理。里面只要加了東西萝喘,git status就會紅色
- 指定某些文件或者文件夾不被git管理
- 在項(xiàng)目根路徑淮逻,跟.git文件夾一個(gè)路徑,新建
.gitignore
文件
-
#
號 是注釋阁簸,沒有用 - 文件夾名字爬早,表示 此文件夾不被管理
- 文件夾摸個(gè)文件想忽略 就寫 想忽略的文件路徑,支持通配符*
-
/dist
表示根路徑下的dist文件夾启妹,不被管理 - *.py 表示后綴為py文件的不被管理
-
*.log*
帶有.log的任意文件不被管理 - !a.txt 除了a.txt不被管理
注意新建.gitignore時(shí)候后面多加個(gè). 不然windows上面會報(bào)錯(cuò)
.gitignore 創(chuàng)建好了如上圖筛严。
- 如下所看到git status c文件有東西的情況也沒變紅。.gitignore這個(gè)文件我們還是要管理的饶米。
想忽略文件夾下的某個(gè)文件桨啃。直接寫上文件的路徑在.gitignore里面
py結(jié)尾的文件沒有提交到暫存區(qū),其他都提交到了暫存區(qū)咙崎。如下圖:
一般.gitignore如下圖那么去寫
分支操作
- git branch 查看所有分支优幸,如果是綠的吨拍,表示在當(dāng)前分支上褪猛。
- git branch 分支名 創(chuàng)建分支
- git checkout 分支名 切換
- git branch -d 分支名 刪除分支名
注意如果在分支上,是不能刪除的.需要切換到master上在刪除
- git checkout -b 分支名 創(chuàng)建并切換
- git branch -a 查看遠(yuǎn)程分支和本地分支
- git branch -r 查看遠(yuǎn)程分支
- git merge 分支名 把dev分支合并到master分支:
切換到master分支,執(zhí)行合并dev分支的命令
羹饰。
分支合并注意點(diǎn):
master: 主分支伊滋,主要用來版本發(fā)布。
develop:日常開發(fā)分支队秩,該分支正常保存了開發(fā)的最新代碼笑旺。
feature:具體的功能開發(fā)分支,只與 develop 分支交互馍资。
release:release 分支可以認(rèn)為是 master 分支的未測試版筒主。比如說某一期的功能全部開發(fā)完成,那么就將 develop 分支合并到 release 分支,測試沒有問題并且到了發(fā)布日期就合并到 master 分支乌妙,進(jìn)行發(fā)布使兔。
hotfix:線上 bug 修復(fù)分支
GITEE 賬號注冊
https://gitee.com
注冊就不說了
配置SSH公鑰
登錄gitee--個(gè)人頭像--設(shè)置--ssh公鑰
如何生成公鑰步驟:
在個(gè)人用戶目錄【C:\Users\xxx】下簡歷一個(gè).ssh的目錄。創(chuàng)建目錄需要輸入
.ssh.
創(chuàng)立藤韵。右鍵git bash here
輸入
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
生成公鑰和私鑰虐沥。但是我們只要公鑰
- 復(fù)制
.ssh
文件夾下面id_rsa.pub
文件的公鑰粘貼到gitee上面ssh文本框里 - 添加后,在終端(Terminal)中輸入
ssh -T git@gitee.com
詳細(xì)設(shè)置ssh公鑰參考地址:https://gitee.com/help/articles/4181#article-header0
碼云創(chuàng)建一個(gè)自己的倉庫
看圖跟著走吧泽艘,一目了然
這樣gitee倉庫就生成好了如下圖
pycharm繼承GIT
pycharm新建一個(gè)項(xiàng)目欲险。
git clone先拉取gitee上面創(chuàng)建的倉庫地址。
將gitee倉庫的所有文件復(fù)制到新建的項(xiàng)目里匹涮。
重啟pycharm會發(fā)現(xiàn)多出來如下git在圖標(biāo)
- 紅色1.py 表示未被管理的狀態(tài)
pycharm如何提交(相當(dāng)于 git commit -m )
提交之后:會圖下圖發(fā)現(xiàn) 沒有任何紅色了
pycharm終端也可以輸入 git命令進(jìn)行提交 效果一樣
pycharm git push到遠(yuǎn)程倉庫
1.py 和 2.py成功推送到了遠(yuǎn)程倉庫
init創(chuàng)建的倉庫添加到gitee
使用url地址添加遠(yuǎn)程庫 git remote add 遠(yuǎn)程倉庫名 url 添加一個(gè)遠(yuǎn)程倉庫
git remote add 遠(yuǎn)程倉庫名 https://gitee.com/name/object_name.git
- git remote 查看關(guān)聯(lián)的遠(yuǎn)程倉庫的名稱
- 查看遠(yuǎn)程庫信息:git remote -v
- 移除和遠(yuǎn)程庫的連接:git remote remove orgin
push推送到遠(yuǎn)程倉庫
-
git push -u origin master
將本地分支的更新全部推送到遠(yuǎn)程倉庫master分支天试。 -
git push origin -d <branchname>
刪除遠(yuǎn)程branchname分支 -
git push --tags
推送所有標(biāo)簽
pulss 拉取遠(yuǎn)程倉庫代碼
git pull 拉取遠(yuǎn)程倉庫所有分支更新并合并到本地分支。
git pull origin master 將遠(yuǎn)程master分支合并到當(dāng)前本地分支
git pull origin master:master 將遠(yuǎn)程master分支合并到當(dāng)前本地master分支焕盟,冒號后面表示本地分支
git fetch --all 拉取所有遠(yuǎn)端的最新代碼
git fetch origin master 拉取遠(yuǎn)程最新master分支代碼
免密登錄
- git push -u origin master 這條命令老師要輸入密碼 如何免密秋秤?
1 . cd到home目錄 cd ~
2.創(chuàng)建一個(gè)文件夾 touch .git-credentials
3.vi .git-credentials
輸入 http://{用戶名}:{密碼}@gitee.com
github:github.com
- .gitconfig下面會多出來
[credential]
helper = store
git bash 過程
一般的流程
git全局設(shè)置
git config --global user.name "這里是你的github用戶名"
git config --global user.email "17740808@qq.com"
創(chuàng)建遠(yuǎn)程倉庫
mkdir my_python
cd my_python
git init
touch README.MD
git status
git add .
git commit -m "第一次提交"
git remote add origin https://gitee.com/name/object_name.git
git push -u origin master
git pull
創(chuàng)建dev分支,并且切換到dev.
本地分支有master和dev 遠(yuǎn)程這時(shí)候只有dev
這時(shí)候把本地dev分支推送到遠(yuǎn)程dev分支脚翘。git push -u origin dev
刪除遠(yuǎn)程dev 分支 git push -u origin -d dev
git push 默認(rèn)是推送到遠(yuǎn)程倉庫 一摸一樣的分支上面
而遠(yuǎn)程倉庫有master dev兩個(gè)分支灼卢,你拉取代碼之后本地只有一個(gè)master,所以本地git push -u origin 指明遠(yuǎn)程倉庫的分支名
否則會推送到和本地一抹一樣的分支名上面。
分支合并
比如把dev分支合并到master分支来农。先git checkout master
然后在執(zhí)行合并到master分支鞋真,get merge dev
pycharm合并,也是要先切換到master 然后如圖操作
解決版本沖突
先去gitee上面拉取一個(gè)倉庫的代碼
如下圖從python_sduty.倉庫拉取2次沃于。
第一次放在I:\python20\softwaredate\python_sduty
第一次放在I:\python20\softwaredate\python_sduty1
git@gitee.com:adeng520/python_sduty.git
I:\python20\softwaredate\python_sduty1
如圖A B 兩個(gè)開發(fā)涩咖,剛開始一模一樣,都同時(shí)開發(fā)這個(gè)py文件
B開發(fā) 添加了c=3 并且提交了代碼
A開發(fā) 添加了一行 d=5的代碼 如圖
A開發(fā)這時(shí)候繁莹,先pull一下代碼 結(jié)果發(fā)現(xiàn)沖突了
解決完沖突A開發(fā) 繼續(xù)提交了代碼到遠(yuǎn)程倉庫
最后push發(fā)現(xiàn)提交成功了檩互,表示這次沖突完美解決