版本控制python
版本控制工具git
思想:版本控制github
實現:版本控制工具安全
集中式版本控制工具:CVS、SVN、VSS······
服務器
分佈式版本控制工具:Git、Mercurial、Bazaar、Darcs······
框架
官網:https://git-scm.com/ssh
代碼託管中心的任務:維護遠程庫分佈式
git init
命令:git init
工具
效果:測試
git config
項目級別/倉庫級別:僅在當前本地庫範圍內有效
git config
user.name xxxxgit config
user.email xxxx系統用戶級別:登陸當前操做系統的用戶
git config --global
user.name xxxxgit config --global
user.email xxxx級別優先級:
git status
查看工做區、暫存區狀態
git add [file name]
將工做區的"新建/修改"添加到到暫存區
git commit -m "commit message" [file name]
將暫存區的內容提交到本地庫
git reflog
git log
顯示每一個版本的所有信息
git log --pretty=oneline
每條記錄在一行顯示
git log --oneline
每條記錄在一行顯示同時hash值只顯示一部分(只顯示當前版本以前的版本)
git reflog
HEAD@{n} 移動到當前版本須要移動n步
git reset --hard
git reset --hard [局部索引值(hash值)]
git reset --hard HEAD^
git reset --hard HEAD~n
git diff [文件名]
git diff [文件名]
history
建立分支
git branch [分支名]
查看分支
git branch -v
切換分支
git checkout [分支名]
合併分支
git checkout [分支名]
git merge [要被合併的分支名]
解決衝突
衝突的表現
衝突的解決
git add [文件名]
git commit -m "日誌信息"
GitHub: https://github.com/
在Git命令行中輸入:
ssh-keygen -t rsa -C "碼雲帳號"
在C:\Users\用戶\下會生成一個.ssh的文件夾,.ssh內id_rsa
是私鑰,id_rsa.pub
是公鑰
登陸碼雲,我的主頁/我的設置/安全設置/SSH公鑰
本地測試鏈接遠程庫是否成功
ssh-T git@github.com
ssh-T git@git.com
爲何?
遠程庫的連接很長,使用不方便
每次都要登陸去複製
命令:
git remote add origin [遠程庫url]
查看遠程庫:
git remote -v
刪除已有的遠程庫
git remote rm origin
命令:
git push origin master
注1:origin是要推送的遠程庫
注2:master推送的分支
命令:
git clone [遠程庫地址]
效果:
完整的把遠程庫下載到本地
建立origin遠程庫地址別名
初始化本地庫
git fetch [遠程庫別名] [遠程分支名]
git merge [遠程庫別名] [遠程分支名]
git pull [遠程庫別名] [遠程分支名]
若是不是基於GitHub遠程庫的最新版所作的修改,不能推送,必須先拉取。
遠程庫爲非空倉庫時,默認時一個新項目,和本地庫時兩個不一樣的項目,不能直接推送
解決:
先從遠程庫克隆島本地,再修改。
拉取遠程庫代碼,再合併爲一個庫
關聯遠程庫
git remote add origin [遠程庫url]
拉取遠程庫代碼到本地,並自動合併到本地庫
git pull origin master --allow-unrelated-histories
推送
git push -u origin master
強制推送到遠程庫(不推薦,容易覆蓋遠程庫原先的內容)
git push -f origin master
協同開發流程:
項目經理上傳初始化的框架到遠程倉庫
github/gitee 遠程庫添加SSH賬號
ssh-keygen -t rsa -C '遠程庫帳號'
本地項目初始化框架上傳到服務器
服務器新建空項目
修改維護本地項目框架
和遠程服務器創建鏈接
提交到遠程服務器
Fork項目到本身git庫
本地克隆/下載項目 維護修改
工做完成後,發從合併請求給項目經理
項目經理審覈,是否合併並代碼!