ctrl+c //退出正在进行的任务
$git checkout -b newBranchName //创建并切换到新的分支
$git checkout master //切换到主分支
$git merge newBranchName //整合当前分支和newBranchName分支
$git branch -d newBranchName //删除newBranchName分支
----------
$git branch xxx //创建分支
$git checkout xxx //切换分支
//
$git branch //列出所有分支,当前分支前面会标一个*号
----------
$git add . //add所有文件到暂存区
$git commit -m "提交文件" //改变head指向
----------
$git push -u origin master //首次,把所有文件推送上去
$git push origin master
----------
$git log --graph --pretty=oneline --abbrex-commit //查看分支合并图
$git merge --no-ff -m"" xxx //不用fast forward模式合并
//合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,
//而fast forward合并就看不出来曾经做过合并。
master分支,稳定,在发布版本时候才合并
dev分支,平时都整合到dev
michael:贡献者1的分支
bob:贡献者2的分支
$git stash //工作一半,还不能add,但有新任务,要保存工作现场
$git stash pop //恢复工作现场,并且删除stash的内容
$git stash list //查看stash内容
$ls
$git stash apply //单纯恢复工作现场
$git stash drop //丢弃stash内容
-----------------
$git branch -D xxx //强制删除未合并分支
$git push origin <branch> //push 分支和内容
----------
$git remote add origin git@github.com:OZCNO/learngit //本地远程关联到github的learngit库
-----------------
$git branch --set-upstream dev origin/dev //建立本地dev与远程dev的联系
$git pull //然后抓取合并
$git remote -v
$git checkout -b branch-name origin/branch-name //在本地创建一个和远程分支一样的分支
----------------------
$git tag v1.0 //打标签,v1.0
$git tag //查看标签
$ git tag v0.9 6224937 //对commit id是6224937的状态做标签
$git show <tag> //查看标签信息
$ git tag -a v0.1 -m "version 0.1 released" 3628164 //创建带有说明的标签,用-a指定标签名,-m指定说明文字
$git push origin tagname //推送一个标签
$ git push origin --tags //推送所有标签
$git tag -d tagname //删除标签
$git push origin:refs/tags/<tagname> //删除远程标签
----------------------
$git clone git@github.com:name/xxx.git //从自己的github中下载xxx.git到本地
github上因为多了readme文件,导致版本不一样
先在本地库git init
,git add .
,git commit -m "commit content"
,后git pull --rebase origin master
整合
$ git push -u origin master
推送所有,之后直接 git push origin master
就好了
多人合作的方式方法:
1,让同伴fork一份你的项目,改好了再pull request
,你测试没问题后再merge
2,在项目settings的Collaborators这里,把伙伴的github账号加入Collaborators中
忽略特殊文件,不管它的状态 .gitignore文件,请看我上一篇文章
$ git add -f App.class
强制添加被ignore的文件
$ git config --global alias.st status
设置别名
同步原作者github仓库和自己克隆下来再本地的仓库
1)进入本地项目目录,输入 $git remote -v:
蓝框内的url是我Github上的项目,红框内的url是原作者项目。如果没有upstream,即没有原作者项目的url,你需要自己添加:
$ git remote add upstream <原作者项目的URL>
2)将原作者项目更新的内容同步到我的本地项目(不是我Github网上的项目):
a) Fetch the branches and their respective commits from the upstream repository. Commits to master will be stored in a local branch, upstream/master.
$git fetch upstream
b) Check out your fork’s local master branch.
$git checkout master
c) 接下来就是合并这两个分支,将原作者项目的修改同步到自己这里(注意还是指本地项目,不是自己Github空间里的项目)。Merge the changes from upstream/master into your local master branch. This brings your fork’s master branch into sync with the upstream repository, without losing your local changes.
$git merge upstream/master
至此我的本地项目已经于原作者项目同步了。但是只是保存在本地仓库,如果要自己的github仓库也同步则要push
最后,如果想要系统学习的并且英语不错的可以去看git官网,如果英语不太可以那么就去看廖雪峰老师的吧,另外有一个篇幅不是很长但也有情景介绍的网站