Git 是一個開源的分佈式版本控制軟件,用以有效、高速的處理從很小到很是大的項目版本管理。html
GitHub、GitCafe、BitBucket和GitLab等是基於Git版本控制的遠程文件託管平臺。git
使用場景:github
PS:
集中式:遠程服務器保存全部版本,用戶客戶端有某個版本
分佈式:遠程服務器保存全部版本,用戶客戶端有全部版本vim
參見:http://git-scm.com/服務器
PS: 註冊GitHub、GitCafe、BitBucket和GitLab等帳戶,以便於將文件託管在遠程。app
git init 初始化 生成 .git 文件,用於保存git相關全部信息,如:每一個版本 git status 查看狀態 git add 文件名或. '.'表示工做區被修改的全部內容 添加到暫存區。 git commit -m '對修改內容的描述信息' 從暫存區提交到分支。 配置用戶信息: git config --local user.name '用戶名' git config --local user.email '郵箱地址' git ls-tree head 查看版本中全部文件 git ls-files -s 查看暫存區和分支中全部文件 git log 查看已生效的操做日誌 git reflog 查看全部日誌 git reset --hard 後接log裏的指定隨機字符串 回滾到指定位置 git reset --mix 後接reflog日誌裏開頭的前7位 再回滾到以前指定的位置 git checkout 文件名 切換到指定文件 git stash 將當前已經作過的修改,保存到一個臨時地方 git stash pop 臨時地方內容從新放回工做區,恢復並刪除最近一次保存的內容 出現衝突,手動解決: """ <<<<<<< Updated upstream 以前的代碼1 以前的代碼2 ======= 以前的代碼1 以前的代碼2 開發直播功能到一半 >>>>>>> Stashed changes 手動解決結果: 以前的代碼1 以前的代碼2 開發直播功能到一半 """ git stash apply ‘名稱’ 恢復指定名稱的內容 git stash drop ‘名稱’ 刪除指定名稱的內容 git stash list 查看全部臨時空間裏的全部內容 git stash clean 清空臨時空間裏的所有內容 master:只保留線上版本 dev: 保存全部開發版本 git branch dev 建立分支(會copy當前分支,注意當前分支的位置) git checkout dev 進入dev分支 git checkout master 切換到master分支 git merge dev 合併dev分支,注意必須在master分支上合併 git branch -d dev 刪除dev分支
git remote add origin https://github.com/xxx/xxx.git 添加遠程鏈接並取別名 origin git push origin master 將本地master分支推送至遠程倉庫 git clone https://github.com/xxx/xxx.git 從遠程倉庫克隆到本地目錄 裏面有config文件,自動配置鏈接地址 git branch dev origin/dev 克隆後只有master分支,同步其餘分支 git fetch origin dev 從遠程倉庫獲取最新內容到本地dev分支 git pull origin dev 從遠程倉庫獲取最新內容到本地dev分支的工做區裏的原內容區 「勁兒大」
詳情見圖:ssh
分支合併分佈式
命令詳解ide
fork,就是別人有一個開源項目,你發現裏面有bug,能夠fork別人的項目,進行修改。說直白一點,就是能夠克隆一份到本地。fetch
當你下載到本地,進行修改完成之後,你push到你本身的GitHub,而後你但願這個項目的開發者,採納你修復的bug。你能夠經過new pull request這個按鈕向開發者發送你的描述信息。開發者認同你的代碼的話,就有可能合併你的代碼了。
開發新功能共有兩種方式:
未完待續...
一、關於登陸
在鏈接GitHub的時候,是須要登陸的,登陸驗證有兩種方式:1、https://xxx.com 經過用戶名和密碼的方式;2、經過SSH鏈接,咱們在git命令行利用ssh-keygen.exe來生成公鑰和私鑰,公鑰放在id_rsa.pub裏面。拷貝里面的字符串,放在GitHub上我的設置裏面有SSH and GPG keys裏給設置上就齊活了。下次只要是SSH鏈接就不用管登陸驗證的問題了,公鑰和私鑰會自動匹配驗證。
二、忽略文件
咱們知道pycharm在生成新的project的時候,都會生成一個.pyc後綴結尾的文件,而這個文件基本上沒什麼用,因此,咱們在文件上傳的時候,就能夠過濾掉一些沒用的文件,怎麼過濾呢,咱們在git命令行vim .gitignore 進入後,在這個裏面添加上咱們須要過濾掉的文件名,如:*.pyc a.py 等,這樣在執行git status的時候,就會自動過濾掉文件裏匹配的相關文件了。再文件上傳的時候,就不會上傳上去了,就完成了忽略文件的做用。
友情連接:請猛戳這裏