Git常用命令总结
git手册
git子模块
https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97
1 首先克隆远程仓库的代码
地址有两种一种是ssh方式,一种是http方式,这里使用http方式,然后输入用户名和密码。
命令:git clone http://gitlab.corp.qunar.com/fe/srm.git
2 查看当前状态
命令: git status
3 创建并切换分支
命令: git checkout -b yylview
4 查看分支信息
命令: git branch
5 git pull 拉取远程服务器所有分支到本地,git branch -a 可以看到本地服务器拉取到的所有分支,git checkout 分支名称 切换到分支名称
6 git branch 可以看到本地的master、自己创建的分支和切换过从服务器拉取到的分支。
7 撤销工作区修改
git checkout -- filename
git checkout . 撤销所有本地修改
8 git add . 从工作区添加所有修改到暂存区 git add filename
9 git commit -m ‘datepicker fixed’ 提交暂存区的修改
10 git pull 从远程仓库拉取最新代码
11 git push origin 分支名称
12 在有修改任务的时候,需要先在master分支上pull到最新的代码,然后按照命名规范创建修改的分支,进行修改。修改之后与master进行merge合并, 必须先切换到master上pull到最新的代码,然后切换到修改分支执行git merge master,然后在分支上向远程push修改的分支。无法改变远程master的内容,没有权限进行远程master和分支的合并。如果修改本地的master以后也不能pull到远程的master了,所以不要修改本地的master。
其实最后是更新最新版的master,然后把自己的修改合并在master上,这样自己的分支就是最新的,然后push到远程,远程就你修改的版本作为master, 每次都发布一次修改的版本为master,没发布一版剩下的修改就都需要merge一下。
因此,多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
应用switchhosts 将qunarzz.com域名指向本地,
在访问系统测试网址的时候http://srmweb.beta.qunar.com/
这个系统的CSS和JS文件都是来自于qunarzz.com域名下面的目录,因此将qunarzz.com指向哪台主机就加载哪台主机的CSS和JS文件
克隆远程仓库的代码 |
git clone http://gitlab.corp.qunar.com/fe/srm.git |
查看当前状态 |
git status |
创建并切换分支 |
git checkout -b yylview |
查看分支信息,自己创建和切换过的分支 |
git branch |
可以看到本地服务器拉取到的所有分支 |
git branch -a |
拉取远程服务器当前分支到本地 |
git pull |
撤销工作区修改 |
git checkout -- filename git checkout . 撤销所有本地修改 |
从工作区添加所有修改到暂存区 |
git add . git add filename
|
提交暂存区的修改
|
git commit -m ‘datepicker fixed’ |
切换分支 |
git checkout 分支名称 |
合并master到当前分支 |
在当前分支上 git merge master |
向远程服务器提交代码 |
git push origin 分支名称 |
回退版本:
git log --pretty=oneline
git reset --hard 3628164
本地仓库设置远程仓库的origin
git remote add origin git@github.com:yylgit/nativeExamples.git
存储现场
git stash/ git stash pop / git stash drop {} /git list /
并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?
幸好,Git还提供了一个stash
功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
$ git stash
Saved working directory and index state WIP on dev: 6224937 add merge
HEAD is now at 6224937 add merge
现在,用git status
查看工作区,就是干净的(除非有没有被Git管理的文件),因此可以放心地创建分支来修复bug。
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了:
你可以多次stash,恢复的时候,先用git stash list
查看,然后恢复指定的stash,用命令:$ git stash apply stash@{0}
分支操作
查看远程分支 git branch -a
删除远程分支 git push origin --delete <branchname>
重命名本地分支 git branch -m devel develop
查看origin git origin -v
添加origin git remote add origin git@github.com:yylgit/reactNativeLearn.git
删除origin git remote rm origin
在github上新建项目与本地新建项目建立关系
首先是在github上新建一个项目,然后在本地建立项目,git init
然后在github上建立一个readme,产生master分支
在本地与远程建立关系 :git remote add origin git@github.com:yylgit/reactNativeLearn.git,
然后把远程的master分支拉下来 : git pull --rebase origin master
然后就可以把代码push到master上
git add .
git commit -m 'initproject'
git push -u origin master
本地分支与远程分支建立关联
git branch --set-upstream-to=origin/master master
删除本地分支 git brach -d fenzhihao
发布npm包
npm login
npm publish
git tag 1.0.0
git push --tag
git push
npm versioin patch 自动打tag提交,但还是需要push 和push --tag