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

 

首先克隆远程仓库的代码

地址有两种一种是ssh方式,一种是http方式,这里使用http方式,然后输入用户名和密码。

命令:git clone http://gitlab.corp.qunar.com/fe/srm.git

 

查看当前状态

命令: git status

 

 

创建并切换分支

 

命令: git checkout -b yylview

 

查看分支信息

命令:  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合并, 必须先切换到masterpull到最新的代码,然后切换到修改分支执行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/

这个系统的CSSJS文件都是来自于qunarzz.com域名下面的目录,因此将qunarzz.com指向哪台主机就加载哪台主机的CSSJS文件

 

 

 

克隆远程仓库的代码

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

 

posted @ 2015-07-08 10:50  杨博客  阅读(278)  评论(0编辑  收藏  举报