Python第十周 學習筆記(1)_Git
阿新 • • 發佈:2018-05-27
學習筆記 git git
-
Repository 倉庫、版本庫
- git初始化後,會在當前目錄生成一個.git目錄,也就是版本庫
-
Workspace 工作區
- .git所在的目錄就是工作區,一般是項目的根目錄
-
index 索引
- 介於工作區和版本庫之間,暫存修改的
- remote 遠程版本庫
- 網絡上的另一個版本庫,可以和本地交互
初始化
git init
添加文件
git add index.htm
- 把文件的當前變化增加到索引中,
- 此時文件還可繼續修改或添加新的文件,後也要用add提交到索引中
- 當前目錄批量添加
git add .
- 遞歸添加當前目錄及其子目錄所有文件
- 只要是目錄,就會遞歸添加該目錄下的文件和子目錄
查看狀態
git status
git文件分類
-
tracked
- 已經加入版本庫的文件
-
untracked
- 未加入到版本庫的文件
-
ignored
- 忽略的,git不再關註的文件
- .gitignore
- 此文件中的文件名、目錄或格式,符合的文件,git會忽略
提交代碼
git commit -m "1st commit"
-
提交更改到版本庫
-
-m
- 填寫本次日誌消息
-
git的提交分為兩個步驟:
-
暫存變更:add作用是把新文件或文件新的改動添加到一個暫存區stage,也就是加入到index中
- 提交變更:commit提交的時暫存區的改動,而不是物理文件目前的改動,提交到當前分支,默認時master分支
-
-
git commit index.htm
- 省略add 直接提交
- git commit -a
- 把所有跟蹤的文件的改動自動暫存,然後commit
增補
git commit --amend
- 把補充的內容增補到上一次commit,不生成新的commit
查看日誌
git log
查看差異
git diff
- 查看被跟蹤文件未暫存的修改,比較暫存區和工作區
git diff --cached
- 查看被跟蹤文件暫存的修改,比較暫存區和上一次commit的差異
git diff HEAD
-
查看被跟蹤文件,比較工作區和上一次commit的差異,HEAD指代最後一次commit
- HEAD
- 指代最後一次commit
- HEAD^
- 指代上一次提交
- HEAD^^
- 指代上上次提交
- HEAD~n
- 上n次提交
檢出與重置
git checkout
- 列出暫存區可以被檢出的文件
git checkout file
- 從暫存區檢出到工作區,即覆蓋工作區文件,可指定檢出的文件。不清除stage
git checkout commit file
- 檢出某個commit的指定文件到暫存區和工作區
git checkout .
- 檢出暫存區的所有文件到工作區
git reset
- 列出將被reset的文件
git reset file
- 重置文件的暫存區,和上一次commit一致,工作去不影響
git reset --hard
- 重置暫存區與工作區,與上一次commit保持一致
git reflog
- 顯示commit的信息,只要HEAD發生變化,就可以看到
git reset commit
- 重置當前分支的HEAD為指定commit,同時重置暫存區,工作區不變
git reset --hard [commit]
- 重置當前分支的HEAD為指定commit,同時重置暫存區和工作區與指定commit一致
reset操作要慎重
移動和刪除
git mv src dest
- 直接把改名的改動放入暫存區
git rm file
- 會同時在版本庫和工作目錄中刪除文件
git rm --cached file
- 將文件從暫存轉成未暫存,從版本庫中刪除,但不刪除工作目錄的該文件,即文件恢復成不追蹤狀態
以上三個命令執行commit後才真正改動
push到服務器
- 配置本地用戶名和郵箱
git config --global user.name "lptnyy"
git config --global user.email "[email protected]"
內容存儲在 ~/.gitconfig
關聯遠程版本庫
git remote add origin http://name@IP:Port/name/gittest.git\
- 習慣將遠程版本庫命名為origin,信息保存在.git/config的[remote "origin"]中
- .git/config是版本庫級別設置文件,具有最高優先級
推送數據
git push -u origin master
- 第一次推送加-u,之後可不加
密鑰登陸
ssh-keygen -t rsa -C "[email protected]"
- 生成的公鑰放到遠程庫選項中
克隆
- 復制遠程庫的ssh地址
git clone git@IP:name/gittest.git
Pycharm中使用git
- 初次使用沒有project或close project後彈出此頁面 選擇git
項目開發
git stash
- 暫時存儲最後一次提交後的變化,放入棧中
git stash pop
-
從棧中取出剛才保存的變化
- 開發中,當前手中的工作沒有完成,需要中斷當前工作來完成其他請求,例如修復bug
- 已完成的工作內容提交不合適,可能還要需要大量的調整,此時就需要stash存儲未完成的工作
分支branch
- 至少一個分支,稱為主分支或主幹分支Master,默認在主分支開發
創建分支
- 分支名一般字符采用英文字母和-
- 點擊Pycharm最下面的version control
- log頁內選擇要分支的點右鍵new branch
合並分支
- 切換回master,檢出master
- 點擊merge changes,選擇no fast forward開始合並
fast forward合並
gitflow工作流
-
最佳實踐
- 使用Git一般至少兩個分支:master、develop
- master,生產環境都來主幹分支上拿數據部署,也可使用鉤子自動完成
-
develop,開發分支,開發人員都是檢出這個分支開發
- 輔助分支
- feature分支,具體功能開發分支,只與develop分支交互
- release分支,發布版本
- hotfix分支,緊急bug修復的版本,最後需要合並到develop和master中
Python第十周 學習筆記(1)_Git