git及github

常用命令

git status
git add 
git commit -m 'update something'
git push

# 不自动转换暂行符
git config --global core.autocrlf false

清除文件的git跟踪

git rm --cached < file name >

忽略某些文件

使用Git Bash
touch .gitignore

,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

配置语法

  • 以斜杠“/”开头表示目录;
  • 以星号“*”通配多个字符;
  • 以问号“?”通配单个字符
  • 以方括号“[]”包含单个字符的匹配列表;
  • 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

示例

!.gitignore

.git

*.class
*.jar
*.war
*.ear

target
out
build

.idea
*.iml
*.ipr
*.iws

.project
.classpath
.settings
.metadata
*.launch
ivy*

Thumbs.db
ehthumbs.db
Desktop.ini

github 分支管理

http://www.ruanyifeng.com/blog/2012/07/git.html
http://www.360doc.com/content/14/1029/10/13147830_420815353.shtml

远程仓库有master和dev分支

  1. 克隆代码
    git clone https://github.com/master-dev.git

  2. 查看所有分支
    git branch --all
    默认有了dev和master分支,所以会看到如下三个分支
    master[本地主分支] origin/master[远程主分支] origin/dev[远程开发分支]
    新克隆下来的代码默认master和origin/master是关联的,也就是他们的代码保持同步

但是origin/dev分支在本地没有任何的关联,所以我们无法在那里开发

  1. 创建本地关联origin/dev的分支
    git checkout dev origin/dev
    创建本地分支dev,并且和远程origin/dev分支关联,本地dev分支的初始代码和远程的dev分支代码一样

  2. 切换到dev分支进行开发
    git checkout dev
    这个是切换到dev分支,然后就是常规的开发

  3. 为了更好的理解,最好继续看看下文。

远程仓库只有mater分支

  1. 克隆代码
    git clone https://github.com/master-dev.git
    这个git路径是无效的,示例而已

  2. 查看所有分支
    git branch --all
    默认只有master分支,所以会看到如下两个分支
    master[本地主分支] origin/master[远程主分支]
    新克隆下来的代码默认master和origin/master是关联的,也就是他们的代码保持同步

  3. 创建本地新的dev分支
    git branch dev 创建本地分支
    git branch 查看分支
    这是会看到master和dev,而且master上会有一个星号
    这个时候dev是一个本地分支,远程仓库不知道它的存在
    本地分支可以不同步到远程仓库,我们可以在dev开发,然后merge到master,使用master同步代码,当然也可以同步

  4. 发布dev分支
    发布dev分支指的是同步dev分支的代码到远程服务器
    git push origin dev:dev 这样远程仓库也有一个dev分支了

  5. 在dev分支开发代码
    git checkout dev 切换到dev分支进行开发
    开发代码之后,我们有两个选择

第一个:如果功能开发完成了,可以合并主分支
git checkout master 切换到主分支
git merge dev 把dev分支的更改和master合并
git push 提交主分支代码远程
git checkout dev 切换到dev远程分支
git push 提交dev分支到远程

第二个:如果功能没有完成,可以直接推送
git push 提交到dev远程分支

注意:在分支切换之前最好先commit全部的改变,除非你真的知道自己在做什么

  1. 删除分支
    git push origin :dev 删除远程dev分支,危险命令哦

下面两条是删除本地分支
git checkout master 切换到master分支
git branch -d dev 删除本地dev分支

github项目提交失败 master -> master (non-fast-forward)

http://michaelye1988.iteye.com/blog/1653599

官方介绍: https://help.github.com/articles/dealing-with-non-fast-forward-errors

参考: http://stackoverflow.com/questions/9661059/git-pull-rebase-upstream-git-push-origin-rejects-non-fast-forward

先执行git pull
然后再执行git push --force origin master替换原先的git push -u origin master

git上传本地项目到github上

  1. 添加忽略文件.gitignore
    Git Bash
    touch .gitignore

  2. 初始化git版本控制
    git init

  3. 提交git
    git add *
    git commit 文件较多时,使用TortoiseGit进行commit

  4. 执行更新
    git pull https://github.com/chencye/demo.git master

  5. 强制提交
    git remote add origin https://github.com/chencye/demo.git
    git push --force origin master

github上创建release

git push origin v0.1.0

github上基于milestone自动生成releaseNotes

https://yq.aliyun.com/articles/14560

posted @ 2016-08-31 22:54  chencye  阅读(246)  评论(0)    收藏  举报