# git配置
#----------------------------------------------
#配置用户名和邮箱:
$ git config --global user.name "Joy Wu"
$ git config --global user.email joy.wu@vipshop.com #查看配置信息:
$ git config --list #生成ssh key
$ ssh-keygen -t rsa -C "joy.wu@vipshop.com" #读取key的内容并添加到gitlab中
cat ~/.ssh/id_rsa.pub # git帮助
#----------------------------------------------
#3种方式获取git帮助:打开本地html格式的帮助页
$ git help <verb>
$ git <verb> --help
$ man git-<verb> # 创建仓库repo
#----------------------------------------------
$ git init
#如果当前目录下有文件想要纳入版本控制,需要先用git add 命令告诉Git 开始对这些文件进行跟踪,然后提交:
$ git add README
$ git commit -m 'initial project version' #如果你熟悉其他的VCS 比如Subversion,你可能已经注意到这里使用的是clone 而不是checkout。这是个非常重要的差别,Git 收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。克隆仓库的命令格式为git clone [url]。
$ git clone git@gitlab.tools.vipshop.com:qatools/testgit.git # 常用文件更新操作
#----------------------------------------------
#要确定哪些文件当前处于什么状态,可以用git status 命令。
$ git status #使用命令git add 开始跟踪一个新文件或者暂存已经修改过的文件。
$ git add FILENAME #提交更新
#在提交之前,请一定要确认还有什么修改过的或新建的文件还没有git add 过,否则提交的时候不会记录这些还没暂存起来的变化。所以,每次准备提交前,先用git status 看下,是不是都已暂存起来了,然后再运行提交命令git commit:
$ git commit 注:提交时记录的是放在暂存区域的快照,任何还未暂存的仍然保持已修改状态,可以在下次提交时纳入版本管理。每一次运行提交操作,都是对你项目作一次快照,以后可以回到这个状态,或者进行比较。 #跳过使用暂存区域(-a指all)
$ git commit -a -m ' ' #移除文件 要从Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。
$ git rm FILENAME 另外一种情况是,我们想把文件从Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。比如一些大型日志文件或者一堆.a 编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在.gitignore 文件中补上,用--cached 选项即可:
$ git rm --cached FILENAME #移动文件/文件重命名
$ git mv file_from file_to #查看提交历史
git log每次更新都有一个SHA-1 校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。
$ git log #要查看当前配置有哪些远程仓库,可以用git remote 命令,它会列出每个远程库的简短名字。也可以加上-v 选项(为—verbose 的简写,取首字母),显示对应的克隆地址:
$ git remote -v #添加远程仓库
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行git remote add [shortname] [url]:
$ git remote add pb git://github.com/paulboone/ticgit.git 现在可以用字串pb 指代对应的仓库地址了。比如说,要抓取所有Paul 有的,但本地仓库没有的信息,可以运行git fetch pb:
$ git fetch pb #从远程仓库抓取数据
正如之前所看到的,可以用下面的命令从远程仓库抓取数据到本地:
$ git fetch [remote-name] #推送数据到远程仓库
$ git push [remote-name] [branch-name] 如果要把本地的master 分支推送到origin 服务器上(再次说明下,克隆操作会自动使用默认的master 和origin 名字),可以运行下面的命令:
$ git push origin master 只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,并到自己的项目中,然后才可以再次推送。 #查看远程仓库信息
我们可以通过命令git remote show [remote-name] 查看某个远程仓库的详细信息,比如要看所克隆的origin 仓库,可以运行:
$ git remote show origin #远程仓库的删除和重命名
在新版Git 中可以用git remote rename 命令修改某个远程仓库的简短名称,比如想把pb 改成paul,可以这么运行:
$ git remote rename pb paul 碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行git remote rm 命令:
$ git remote rm paul #列显已有的标签
$ git tag 我们可以用特定的搜索模式列出符合条件的标签。在Git 自身项目仓库中,有着超过240 个标签,如果你只对1.4.2 系列的版本感兴趣,可以运行下面的命令:
$ git tag -l 'v1.4.2.*' #分享标签
默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行git push origin [tagname] 即可:
$ git push origin v1.5 如果要一次推送所有(本地新增的)标签上去,可以使用--tags 选项:
$ git push origin --tags 现在,其他人克隆共享仓库或拉取数据同步后,也会看到这些标签。 # git分支操作
#----------------------------------------------
#新建分支(并不切换到新建的分支)
$ git branch branname #切换分支(并不切换到新建的分支)
$ git checkout branname #新建并切换到该分支
$ git checkout -b branname #删除分支
$ git branch -d branname #将iss53分支合并入master,如下:
$ git checkout master
$ git merge iss53 git fetch和pull的区别
Icon
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin master
git log -p master..origin/master //显示远程仓库的master分支的更改记录
git merge origin/master 以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并 上述过程其实可以用以下更清晰的方式来进行: git fetch origin master:tmp
git diff tmp
git merge tmp 从远程获取最新的版本到本地的test分支上,之后再进行比较合并 2. git pull:相当于是从远程获取最新版本并merge到本地 git pull origin master 上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些。因为在merge前,我们可以查看更新情况,然后再决定是否合并。 #将本地的serverfix分支推送到远程仓库:
$ git push origin serverfix #跟踪分支
从远程分支检出的本地分支,称为跟踪分支(tracking branch)。跟踪分支是一种和远程分支有直接联系的本地分支。
$ git checkout -b [分支名] [远程名]/[分支名] 或者
$ git checkout --track [远程名]/[分支名] #删除远程分支serverfix(注意origin和:之间有一个空格)
$ git push origin :serverfix 或者
$ git push origin --delete serverfix

转: git常用命令的更多相关文章

  1. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  2. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  3. Git 常用命令大全

    Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加 ...

  4. Git常用命令总结

    Git常用命令总结 git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone ...

  5. GIT常用命令备忘

    Git配置 git config --global user.name "storm" git config --global user.email "stormzhan ...

  6. Git 常用命令2

    Git 常用命令 Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ gi ...

  7. git常用命令-基本操作

    git常用命令-基本操作 1)      新增文件 新增了Test_1.java git add Test_1.java git commit –m “新增了Test_1.java” git push ...

  8. 转收藏:Git常用命令速查表

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  9. git常用命令,git版本控制和Xcode结合使用,用Xcode提交到github,github客户端使用

    1.git常用命令 查看命令: 1.git --help 查看git所有命令 2.git clone -help 查看git clone命令的细节 3.git config -l   查看当前所有配置 ...

  10. Git 常用命令详解(二)

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

随机推荐

  1. JAVA设计原则

      1.单一职责规则(SRP):有且仅有一个原因引起类的变化. 2.依赖倒置规则(DIP): 高层模块不应该依赖底层模块,两者都用依赖接口: 接口不依赖细节: 细节依赖接口. 3.接口隔离规则:类间的 ...

  2. jsp文件中的路径问题

    最近在写一个OA系统,在资源的路径问题上面出现了一点问题,使用相对路径的话不利于文件的改动,所以使用了绝对路径来写. 在jsp文件中   <%= String path = request.ge ...

  3. struts2 日期标签

    <td align="center"><s:date name="age" format="yyyy-MM-dd"> ...

  4. mysql函数操作

    <?php try{ $dbh = new PDO('mysql:dbname=testdb;host=localhost', 'mysql_user', 'mysql_pwd'); }catc ...

  5. Linux SSH 互信

    第一步: 创建用于身份认证的两个密钥文件 ssh-keygen #注明.想省事的话打完这个命令后一直回车就行了. 第二步: 把公钥上传到目标主机上去 ssh-copy-id -i id_rsa.pub ...

  6. 如何在IE8下调试OCX控件

    第一种方式 多进程模式下, 在IE8打开web页面, 然后在调试菜单选择附加到进程, 这时看到2个IE进程, 选择没有带标题的, 也就是主进程, 就可以正常调试了. 此方式比较麻烦, 不能F5直接启动 ...

  7. codechef Chef and The Right Triangles 题解

    Chef and The Right Triangles The Chef is given a list of N triangles. Each triangle is identfied by ...

  8. Drupal 7 建站学习手记(四):怎样改动Nivo Slider模块的宽高

    背景 Nivo Slider模块默认大小是用的height: 100%, width 100%, 但IE7及下面的浏览器是不支持百分比宽高的, 而我的项目目标用户基本都是使用XP系统,项目需求是必须兼 ...

  9. 如何查詢 SQL Server 資料庫中欄位值為 NULL 的資料(转)

    最近使用mssql的时候对于未null的字段查询不到 http://blogs.msdn.com/b/jchiou/archive/2008/05/01/sql-server-null.aspx 先建 ...

  10. 初学JSoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址.HTML 文本内容.它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出 ...