git

GIT

//////////////////////////////////////////////////////////////////

//git免登陆gitconfig方式

终端执行:

gitconfig--globalcredential.helperstore

终端查看配置会增加helper=store表示存储

gitconfig—ist

1.设置用户名和邮箱

gitconfig--globaluser.name"<username>"

gitconfig--globaluser.email“<email>”

查看是否设置成功:gitconfig–lis

2

生成ssh秘钥

ssh-keygen-trsa-C“<email>”

ps:执行该命令后:

第一个提示输入保存文件名,默认为空,回车。

第二个提示输入密钥,默认为空,回车

第三个确认刚输入密钥,默认为空,回车完成后,默认保存位置当前~/.ssh/id_rsa和id_rsa.pub

3

zaigithub上添加密钥

把id_rsa.pub里的内容添加到github的sshkeys里。

4

设置成功后,通过gitclone项目测试git免密码登录是否设置成功。

//////////////////////////////////////////////////////////////////

//gitconfig

#配置使用git仓库的人员姓名

gitconfig--globaluser.name"YourNameComesHere"

#配置使用git仓库的人员email

gitconfig--globaluser.emailyou@yourdomain.example.com

#配置到缓存默认15分钟

gitconfig--globalcredential.helpercache

#修改缓存时间

gitconfig--globalcredential.helper'cache--timeout=3600'

gitconfig--globalcolor.uitrue

gitconfig--globalalias.cocheckout

gitconfig--globalalias.cicommit

gitconfig--globalalias.ststatus

gitconfig--globalalias.brbranch

gitconfig--globalcore.editor"mate-w"#设置Editor使用textmate

gitconfig-1#列举所有配置

///////////////////////////////////////////////////////

//log--online压缩模式--graph图形模式

#gitlog<id>

gitlogb8a02f1cdc4da7cdaea95875169f0f6e3555deac

#gitlog<file>

gitlogpom.xml

#gitlog-p<file>显示详情

gitlog-ppom.xml

///////////////////////////////////////////////////////

//clone

#服务器上下载(git服务器项目上git@gitlab.com:cheyipai/test1.git)

gitclonegit@gitlab.com:cheyipai/test1.git~/Desktop/test1

///////////////////////////////////////////////////////

//diff

#gitdiff<id1><id2>

gitdiff7d53367de321496faf07a4d0cf02b3e4534d1ccb60ec872a693ab02ad42b395b118f0d6456395d18

#gitdiff<branc1><branch2>1

gitdiffmasterfeature-cloudoptimize-20160630

#当前所在分支与feature-cloudoptimize-20160630比较并输出不同到/data/diff.txt

gitdifffeature-cloudoptimize-20160630>/data/diff.txt

//////////////////////////////////////////////////////////////////

//stash你正在修改某个bug或者某个特性,又突然被要求展示你的工作。而你现在所做的工作还不足以提交,这个阶段你还无法进行展示(不能回到更改之前)。在这种情况下,gitstash可以帮助你。stash在本质上会取走所有的变更并存储它们为以备将来使用

#回到之前

gitstash

#stash列表

gitstashlist

#解除stash并且恢复未提交的变更

gitstashapply

#解除stash并且恢复指定的stash未提交的变更

gitstashapplystash@{2}

#恢复成最近一次存储的stash

gitstashpop

#删除stash

gitstashdropstash@{0}

//////////////////////////////////////////////////////////////////

//remote

#查看远程地址情况

gitremote-v

//////////////////////////////////////////////////////////////////

//reset回到某次提交提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区

#HEAD表示提交的最新版本。HEAD^表示上一个版本,HEAD^^表示上上个版本。HEAD~100表示往上100个版本。

gitreset--hardHEAD^

gitreset--hardHEAD^file

#退回到第三个版本

gitreset--hardHEAD~3

#22f8aae提交IDgitreflog查看提交id

gitreset22f8aae

#将本地的状态回退到和远程的一样

gitreset--hardorigin/maste

1:gitreset--mixed:此为默认方式,不带任何参数的gitreset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

2:gitreset--soft:回退到某个版本,只回退了commit的信息,不会恢复到indexfile一级。如果还要提交,直接commit即可

3:gitreset--hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

//////////////////////////////////////////////////////////////////

//revert生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留

#commit2被撤销了

gitrevertHEAD~1

#撤销前一次commit

gitrevertHEAD

#撤销前前一次commit

gitrevertHEAD^

//////////////////////////////////////////////////////////////////

//reflog如果在回退以后又想再次回到之前的版本,可以用reflog查看到commitid并使用reset设置

gitreflog

//////////////////////////////////////////////////////////////////

//mv重命名文件

gitmvreademe.txtreadme

gitcommit-m”updatename"

///////////////////////////////////////////////////////

//merge

#gitmerge<branch>合并branch到当前分支

gitmergeorigin/master

///////////////////////////////////////////////////////

//rebaserebase和merge没有区别,但是rebase更干净

#将masterrebase到branch

gitrebasemaster<branch>

#--abort参数来终止rebase的行动,并且分支会回到rebase开始前的状态

gitrebase--abort

#rebase时发生冲突,解决完冲突后,用"git-add"命令去更新这些内容的索引(index),然后,你无需执行git-commit,只要执行:

gitrebase--continue

///////////////////////////////////////////////////////

//clean

#从工作目录中移除没有track的文件

gitclean-d-fx""

///////////////////////////////////////////////////////

//commit

gitcommit-m“message”abc.txt

//////////////////////////////////////////////////////////////////

//tag

#查看所有标签

gittag

#删除标签

gittag-dv1.0

gitpushoriginv1.0

#一次推送全部本地标签

gitpushorigin--tags

//////////////////////////////////////////////////////////////////

//branch分支

#删除本地

gitbranch-Dbranch-name

#删除远程删除group可以在gitlabgroup中remove

gitbranch-r-Dorigin/branch-name

gitpushorigin:branch-name

#查看远程分支-a表示本地和远程

gitbranch-r/-atest

#查看远程所有分支

gitbranch-r

#查看本地分支

gitbranch

#修改分支名称为test1

gitbranch-mtesttest1

#分支删除创建操作流程

1.切换到主分支更新

gitcheckoutmaster

gitpull

2.删除旧分支

gitbranch-rorigin/feature-growup-20151211

gitbranch-r-Dorigin/feature-growup-20151211

#注意origin和:之间有个空格

gitpushorigin:feature-growup-20151211

3.查看一下是否删除成功

gitbranch

gitbranch-a

4.创建并切换分支

gitcheckout-bfeature-growup-20151211origin/master

gitbranch

gitpulloriginfeature-growup-20151211

gitpush--set-upstreamoriginfeature-growup-20151211

//////////////////////////////////////////////////////////////////

//rm删除文件

#删除文件

gitrm-f--chcheda.imi

gitcommit-m“remove”

gitpush

#删除目录-r.idea是目录-f强行移除

gitrm-r-f--cached.idea

gitcommit-m“rm”

gitpush

================================================================

//////////////////////////////////////////////////////////////////

//获取git仓库

https://gitlab.com/projects/new

在创建项目下可以创建group

gitlab:

在目标目录如trunk/

1.gitinit

2.gitadda/b.imic/

3.gitcommit-am“message”

4.gitremoteaddoriginhttps://gitlab.com/cheyipai/CarAuctionWeb.git

5.gitpush-uoriginmaster

#添加文件当前目录所有文件

gitadd*

gitcommit-m‘all’#仅提交到本地仓库

gitpushoriginmaster#提交到远程仓库的master分支上

#要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行gitremoteadd[shortname][url]:

gitremoteaddoriginhttp://...

================================================================

#切换分支(本地远程)

gitcheckoutmaster(dev,abc…)

================================================================

#本地创建远程创建切换分支

gitcheckout-bfeature-growup-20151211origin/master

gitpush--set-upstreamoriginfeature-growup-20151211

================================================================

#git分支和主干冲突

1.代码上在分支上执行gitpulloriginmaster

(注意push不然没有)

2.有冲突merger合并代码(可以用界面在拉取master然后会提示merge)

3.提交

4.再次在git上合并分支到主干

================================================================

#git合并主干到分支

1.代码上在分支上执行gitpulloriginmaster

2.查看versioncontrol选项

3.合并红色的文件

4.commitpush

//////////////////////////////////////////////////

git常用操作

1.创建一个新的repository:

先在github上创建并写好相关名字,描述。

$cd~/hello-world//到hello-world目录

$gitinit//初始化

$gitadd.//把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add具体文件)

$gitcommit//提交到本地仓库,然后会填写更新日志(-m“更新日志”也可)

$gitremoteaddorigingit@github.com:WadeLeng/hello-world.git//增加到remote

$gitpushoriginmaster//push到github上

2.更新项目(新加了文件):

$cd~/hello-world

$gitadd.//这样可以自动判断新加了哪些文件,或者手动加入文件名字

$gitcommit//提交到本地仓库

$gitpushoriginmaster//不是新创建的,不用再add到remote上了

3.更新项目(没新加文件,只有删除或者修改文件):

$cd~/hello-world

$gitcommit-a//记录删除或修改了哪些文件

$gitpushoriginmaster//提交到github

4.忽略一些文件,比如*.o等:

$cd~/hello-world

$vim.gitignore//把文件类型加入到.gitignore中,保存

然后就可以gitadd.能自动过滤这种文件

5.clone代码到本地:

$gitclonegit@github.com:WadeLeng/hello-world.git

假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:

$gitfetchorigin//获取远程更新

$gitmergeorigin/master//把更新的内容合并到本地分支

//////////////////////////////////////////////////

idea操作

在gitlab上创建分组创建项目设置好权限

VCSimportintoversioncontrolcreategitRepository…

Gitadd

#选择srcpom.xml

GitcommitDiretory

命令:

gitremoteaddoriginhttp://gitlab.mapollo.com/qujian/mapollo-cloud.git

gitpush-uoriginmaster

#创建分支

idea在src上Git—Repositiry—Branches---NewBranches

#用命令行在远程创建分支

gitpush-uorigindev

#清理git

删除git文件夹修改.idea下vcs.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<projectversion="4">

<componentname="VcsDirectoryMappings">

<mappingdirectory=""vcs=""/>

</component>

</project>

git

相关推荐