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之外的全部文件都写出来!