文档章节

git 的简单命令

萧小蚁
 萧小蚁
发布于 2015/10/10 20:24
字数 1184
阅读 29
收藏 0

git init

git add file.txt   添加

git commit -m "XXX"  提交

git status

git diff

git log     查看提交历史

git log --pretty=oneline  历史一行一行显示

git reset --hard head^(回退到上一个版本)

git reset --hard 版本号前几位  

git reflog  查看命令历史

git checkout -- readme.txt  丢弃工作区的修改

git reset HEAD file 不但改乱了⼯工作区某个⽂文件的内容,还添加到了暂存区时,想丢弃修改,分两步 1、reset  2、checkout

  

删除文件:

  rm 文件名

  git rm 文件名

  git commit -m "rm 文件名"


  rm 文件名

  git checkout -- test.txt


$ git push origin master    本地master分⽀支的最新修改推送⾄至GitHub


git remote add origin git@server-name:path/repo-name.git ;  关联一个远程库

git push -u origin master     第一次推送master分⽀支的所有内容;


从远程库克隆

git clone git@github.com:michaelliao/gitskills.git

Cloning into 'gitskills'...

remote: Counting objects: 3, done.

remote: Total 3 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (3/3), done.

$ cd gitskills

$ ls

README.md


$ git checkout -b dev  创建dev分支,然后切换到dev分⽀支:

  git checkout 命令加上 -b 参数表⽰示创建并切换,相当于以下两条命令:

$ git branch dev  查看分支

$ git checkout dev  切换分支


$ git branch  查看当前分支

* dev

master

git branch 命令会列出所有分⽀支,当前分⽀支前⾯面会标⼀一个*号。


查看分支:git branch

创建分支:git branch name

切换分支:git checkout name


创建+切换分支: git checkout -b name

合并某分支到当前分支: git merge name

删除分支: git branch -d name


Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容


git log --graph --pretty=oneline --abbrev-commit    查看分支的合并情况


合并分支时,如果可能,Git会⽤用“Fast forward”模式,删除分支后,会丢掉分支信息。


如果要强制禁用“Fast forward”模式,Git就会在merge时生成一个新的commit,这

样,从分支历史上就可以看出分⽀支信息。

              

git merge --no-ff -m "merge with no-ff" dev   --no-ff参数,表示禁用“Fast forward”

                                              因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。



git stash  把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git checkout -b issue-编号   增加bug的分支

git merge --no-ff -m "merged bug fix 101" issue-101   bug合并到主干

git branch -d issue-编号  删除bug分支

git stash list 查刚才的工作现场

git stash apply  恢复现场   git stash apply stash@{0}

git stash drop   删除stash内容

git stash pop 恢复现场的同时,删除stash内容  


开发一个新feature,最好新建一个分支;

如果要丢弃一个没有被合并过的分支,可以通过 git branch -D name 强行删除。


git remote 查看远程库的信息

git remote -v 查看远程库,显示更详细的信息


多人协作

查看远程库信息,使用 git remote -v ;

• 本地新建的分支如果不推送到远程,对其他人就是不可见的;

• 从本地推送分支,使用 git push origin branch-name ,如果推送失败,先用git pull抓

取远程的新提交;

• 在本地创建和远程分支对应的分支,使用 git checkout -b branch-name origin/branch-

name ,本地和远程分支的名称最好一致;

• 建立本地分支和远程分支的关联,使用 git branch --set-upstream branch-name

origin/branch-name ;

• 从远程抓取分支,使用 git pull ,如果有冲突,要先处理冲突。



标签


  git tag v1.0   创建标签

  git tag   查看标签

  git log --pretty=oneline --abbrev-commit 找到历史提交的commit id

  git tag 版本号 commit id   对某次的提交打标签

  git show 版本号 查看标签信息


  还可以创建带有说明的标签,⽤用-a指定标签名,-m指定说明⽂文字:

  $ git tag -a v0.1 -m "version 0.1 released" 3628164


还可以通过-s⽤用私钥签名⼀一个标签:

$ git tag -s v0.2 -m "signed version 0.2 released" fec145a

签名采⽤用PGP签名,因此,必须⾸首先安装gpg(GnuPG),如果没有找到gpg,或者没有

gpg密钥对,就会报错:

gpg: signing failed: secret key not available

error: gpg failed to sign the data

error: unable to sign the tag

如果报错,请参考GnuPG帮助⽂文档配置Key。



  git tag -d 版本号  删除标签

  git push origin 版本号  推送某个标签到远程

  git push origin --tags  一次性推送全部尚未推送到远程的本地标签

 

  如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

  $ git tag -d v0.9


  然后,从远程删除。删除命令也是push,但是格式如下:

  $ git push origin :refs/tags/v0.9



git的其他设置


  $ git config --global color.ui true   让Git显示颜色,会让命令输出看起来更醒目:


配置别名


  $ git config --global alias.st status 


© 著作权归作者所有

共有 人打赏支持
萧小蚁

萧小蚁

粉丝 98
博文 279
码字总数 192339
作品 0
海淀
程序员
GitLab的安装及使用(CentOS 7)

一、前言 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 它拥有与Github类似的功能,能够浏览源代码,管理...

wzlinux
2017/10/22
0
0
撤销git add操作

使用Git的时候,有时候不小心使用git add,添加了不想追踪的文件。也就是track了一些不想track的文件,这个时候需要撤销操作,怎么处理呢? Git 文件状态的生命周期 演示 还原操作 使用git r...

Real_man
01/08
0
0
Python实现-Git日志统计分析工具

Python实现的一个小工具,用于分析Git commit log,获得Git Project每个成员的简单行为数据。 Warning:代码量不能代表程序员能力水平! 启动参数 共5个。 Repo地址 Commit 起始日期 Commit...

爱柚子的陈同学
2017/12/14
0
0
为什么要有Git add 命令

不知道大家在学习Git的过程中,有没有想过一个问题,就是为什么要有git add 命令. 当一个文件被我们add过后,每次commit前还是需要git add,为什么不像svn那样只用add一次,以后在也不用add...

我是偶哦
2016/05/20
30
0
GitLab基础命令 使用日志

6月进入新公司,公司用的GitLab进行代码托管。对于我这种半路出家的程序员,终端操作一直感觉是恶梦,虽然很多都是基本而且简单的命令,但本能有一种对非可视化操作的抗拒。但抗拒归抗拒,该...

阿元
2015/07/11
394
0

没有更多内容

加载失败,请刷新页面

加载更多

创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
今天
3
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0
搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
6
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
5
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部