sourcetree、Forkhtml
首先進入到目錄下讓,而後使用下面命令初始化gitgit
git initgithub
添加文件服務器
git add 文件名 //提交某個文件ssh
git add . //提交全部更改gitlab
git commit -m "本次提交備註" //提交到本地倉庫 git status查看當前提交的信息狀態url
git branch 查看當前git分支列表,也能看到當前的分支htm
git checkout -b dev 建立一個新的分支,名稱爲dev,並切換到該分支ip
git checkout master 切換到master分支,只能切換到已經存在的分支開發
git checkout dev 切換到dev分支
git log 查看最近提交記錄信息
合併分支(不能在當前分支合併當前分支)
git merge dev //講dev分支合併到當前分支,注意若是要合併到一個分支到另外一個分支,請先切換分支到另外一個分支例如:開發新功能分支dev, 原始分支master,要發佈一個版本,合併版本,先切換到master分支,在合併dev分支:1 git checkout master 2 git merge dev
刪除分支(不能刪除當前分支)
git branch -d dev //刪除dev的分支,這種只能刪除沒有提交的git分支
git branch -D dev //強制刪除dev分支,已經提交的Git分支也能刪除
回退操做,假如和平代碼衝突了,能夠用這個
git revert 是撤銷某次操做,這次操做以前的commit都會被保留
git reset 是撤銷某次提交,可是這次以後的修改都會被退回到暫存區
查看某次commit的改動
git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
便可顯示具體的某次commit的改動~
git show c5e69804bbd9725b5dece57f8cbece4a96b9f80b filename
只看某次提交中的某個文件變化,能夠直接加上fileName
鏈接到遠端
注意後面是Git倉庫名稱,能夠是https的,也能夠是ssh的
Git 使用命令推送到遠程倉庫
git remote add origin git@github.com:Marshal-S/LSWebView.git
git push -u origin master //將本地的master分支推送到origin主機,同時指定origin爲默認主機,後面就能夠不加任何參數使用git push了
git push origin master //默認推送到遠程倉庫的方式,不作任何設置
如何把現有的倉庫內容推送到另一個倉庫
首先更改url
git remote set-url --add origin git@github.com:Marshal-S/LSWebView.git
而後推送
git push origin master
//查詢當前遠程的版本
$ git remote -v
//直接拉取併合並最新代碼
$ git pull origin master [示例1:拉取遠端origin/master分支併合併到當前分支]
$ git pull origin dev [示例2:拉取遠端origin/dev分支併合併到當前分支]
從本地提交代碼到服務器
$ git push origin dev [示例2:將當前分支提交到遠端origin/dev分支]
git從倉庫中導出某一個版本
git archive -o ../../publish/a2.zip(目標路徑以及文件包名) 31d0104(當前版本)
在倉庫目錄下新建一個名爲.gitignore的文件
以'#'開始的行,被視爲註釋.
忽略掉全部文件名是 project.txt的文件.
project.txt
忽略全部生成的 html文件,
*.html
project.html是手工維護的,因此例外.
!project.html
忽略全部.o和 .a文件.
*.[oa]
配置語法:
以斜槓「/」開頭表示目錄;
以星號「*」通配多個字符;
以問號「?」通配單個字符
以方括號「[]」包含單個字符的匹配列表;
以歎號「!」表示不忽略(跟蹤)匹配到的文件或目錄;
經常使用的規則:
/mtk/ 過濾整個文件夾
*.zip 過濾全部.zip文件
/mtk/do.c 過濾某個具體文件
被過濾掉的文件就不會出如今git倉庫中(gitlab或github)了,固然本地庫中還有,只是push的時候不會上傳。
須要注意的是,gitignore還能夠指定要將哪些文件添加到版本管理中:
!*.zip
!/mtk/one.txt
惟一的區別就是規則開頭多了一個感嘆號,Git會將知足這類規則的文件添加到版本管理中。
爲何要有兩種規則呢?想象一個場景:假如咱們只須要管理/mtk/目錄中的one.txt文件,這個目錄中的其餘文件都不須要管理,那麼咱們就須要使用:
/mtk/
!/mtk/one.txt
假設咱們只有過濾規則,而沒有添加規則,那麼咱們就須要把/mtk/目錄下除了one.txt之外的全部文件都寫出來!