命令整理,git种种吩咐介绍以及境遇的种种坑

Posted by

一.种种吩咐介绍: 

git
pull:
从任何的版本库(不仅可以够是长距离的也能够是地面包车型客车)将代码更新到地头,举个例子:’git
pull origin
master’正是将origin这么些本子库的代码更新到本地的master主枝,该成效看似于SVN的update

git
add:
是将近日退换只怕新扩展的文件参与到Git的目录中,参加到Git的目录中就代表记入了版本历史中,那也是交由以前所急需实行的一步,比如’git
add app/model/user.rb’就能增添app/model/user.rb文件到Git的目录中

git
rm:
从脚下的劳作空间卯月目录中剔除文件,比方’git rm
app/model/user.rb’

git
commit:
交给当前专门的学问空间的修改内容,类似于SVN的commit命令,比如’git
commit -m “story #3, add user
model”‘,提交的时候必须用-m来输入一条提交音讯

git
push:
将本地commit的代码更新到长途版本库中,举例’git push
origin’就能将当地的代码更新到名称叫orgin的中远距离版本库中

git log:查阅历史日志

git
revert:
死灰复然三个版本的修改,必须提供贰个实际的Git版本号,譬喻’git
revert
bbaf6fb5060b4875b18ff9ff637ce118256d6f20’,Git的版本号都是浮动的一个哈希值、

git 命令

<pre>
<p>
简介:
clone 克隆远程仓库
init 开头化酒店
remote 连接远程仓库
pull 从远程饭馆下拉获得新数据
push 将本地旅舍新添或改变文件上传到长途仓库
add 添Gavin件可能修改文件,commit以及push此前运用
log 当前饭馆提交过的日志信息
status 当前货仓版本状态
commit 提交到近些日子旅馆中
branch 分支命令,相关增加和删除查操作
checkout 使用远程客栈尾数本子完全覆盖当前仓库内容/选取分支branch
diff 相比版本内容
merge 合併版本内容
</p>
<p>
登记使用 注册一下git的用户消息:
git config –global user.name + 你的名字 
git config –global user.email + 你的邮箱
输入完毕之后方可输入如下命令查看用户新闻:
git config –list
</p>
起首化配置

二.采取手续及流程

创建新酒馆
git init
检出酒店
件来人肉合併那么些 争执(conflicts)
了。改完之后,你需求实行如下命令以将它们标识为统十分一功:
git add <filename>
在集结改造此前,也足以选用如下命令查看:
git diff <source_branch>
<target_branch>
串创造五个当地旅馆的克隆版本
git clone /path/to/repositoty
假诺是长途服务器上的货仓
git clone
username@host:/path/to/repository
件。已加多到缓存区的变动,以及新件,都不受影响。

一旦你想要扬弃你抱有的本地转移与提交,能够到服务器上获得最新的本子并将您当地主分支指向到它:
git fetch origin
git reset –hard origin/master
你的本土货仓由 git
维护的三棵“树”组成。第二个是你的 专业目录,它具备实际件;第1个是
缓存区(Index),它像个缓存区域,一时保存你的退换;最后是
HEAD,指向您近年来二次提交后的结果。
丰裕与提交
你能够安排转移(把它们增加到缓存区),使用如下命令:
git add <filename>
git add *
那是 git
基本职业流程的首先步;使用如下命令以实际交付更动:
git commit -m “代码提交音信”
以往,你的变动已经付诸到了
HEAD,不过还没到你的远端货仓。推送更换
您的改换现在一度在该地仓库的 HEAD
中了。实施如下命令以将这个更换提交到远端商旅:
git push origin master
能够把 master
换来你想要推送的另外分支。 

设若你还未有仿制现成宾馆,并欲将您的仓库连接到某些远程服务器,你能够利用如下命令增添:
git remote add origin
<server>
如此那般你就可见将您的改观推送到所拉长的服务器上去
分支
分层是用来将特色开辟绝缘开来的。在您创制旅社的时候,master
是“暗中同意的”。在任何分支上拓展付出,完毕后再将它们统一到主分支上
制造三个称为“feature_x”的分支,并切换过去:
git checkout -b feature_x
切换回主分支:
git checkout master
再把新建的分层删掉:
git branch -d feature_x
唯有你将分支推送到远端酒店,不然该支行就是不为别人所见的:
git push origin <branch>
立异与统一
要翻新您的地面仓库至最新改变,实行:
git pull
以在您的做事目录中 获取(fetch) 并
合併(merge) 远端的变动。
要联合别的分支到你的最近支行(比如master),实践:
git merge <branch>
二种情形下,git
都会尝试去自动合并改变。不幸的是,自动合併并非每一趟都能得逞,并大概产生争持(conflicts)。 那时候就须要您改改这个文件来人肉合併这几个龃龉(conflicts)
了。改完事后,你要求施行如下命令以将它们标志为联合成功:
git add <filename>
在统一改变从前,也得以应用如下命令查看:
git diff <source_branch>
<target_branch>
轮换本地转移
一经你做错事(自然,那是不或许的),你能够采用如下命令替换掉本地转移:
git checkout — <filename>
此命令会接纳 HEAD
中的最新内容替换掉你的工作目录中的文件。已增多到缓存区的转移,以及新文件,都不受影响。

假如你想要舍弃你富有的本地转移与提交,能够到服务器上获得最新的本子并将您本地主分支指向到它:
git fetch origin
git reset –hard origin/master

配备使用git旅馆的人口姓名

git config –global user.name “Your Name Comes Here”

三.错误汇总

安顿使用git商旅的人手email

git config –global
user.email
you@yourdomain.example.com

1.windows使用git时出现:warning: LF will be replaced by CRLF

windows中的换行符为 C景逸SUVLF, 而在linux下的换行符为LF,所以在实施add .
时出现提醒,解决办法:

  1. $ rm -rf .git  // 删除.git  
  2. $ git config –global core.autocrlf false  //禁止使用电动调换   

然后再一次实行:

  1. $ git init    
  2. $ git add .  

布局到缓存 私下认可15分钟

git config –global credential.helper cache

2.git push origin master出错:error: failed to push some refs to

很显明是:

本地没有update到新型版本的门类(git上有README.md文件没下载下来)

地点一贯push所以会出错。

【消除进度】

1.参观展览提醒里面,感觉是地点的代码不是最新的。

进而感觉应该是近乎于svn中的,先update一下,再去commit,估量就足以了。

之所以先去pull试试:

git pull  –rebase origin master

解决!

 

修改缓存时间

git config –global credential.helper ‘cache –timeout=3600’

git config –global color.ui true
git config –global alias.co checkout
git config –global alias.ci commit
git config –global alias.st status
git config –global alias.br branch
git config –global core.editor “mate -w” # 设置Editor使用textmate
git config -1 #历数全数配置

3.Git: cannot checkout branch – error: pathspec ‘…’ did not match any file(s) known to git

消除方案:传送门

用户的git配置文件~/.gitconfig

翻开、添加、提交、删除、找回,重新恢复设置修改文件

git help <command> # 显示command的help
git show # 显示某次提交的剧情
git show $id

git co — <file> # 放弃工作区修改
git co . # 放任专业区修改

git add <file> # 将专门的工作文件修改提交到地面暂存区
git add . # 将持有修改过的职业文件提交暂存区

git rm <file> # 从版本库中除去文件
git rm <file> –cached # 从版本库中删除文件,但不删除文件

git reset <file> # 从暂存区复苏到职业文件
git reset — . # 从暂存区复苏到职业文件
git reset –hard #
恢复生机以来一遍提交过的场地,即吐弃上次付出后的具有本次修改

git ci <file>
git ci .
git ci -a # 将git add, git rm和git ci等操作都统一在协同做
git ci -am “some comments”
git ci –amend # 修改最终二回提交记录

git revert <$id> #
恢复生机某次提交的事态,复苏动作自己也创制了一次提交对象
git revert HEAD # 复苏最后一遍提交的情景

查阅文件diff

git diff <file> # 相比较当前文件和暂存区文件差距
git diff
git diff <$id1> <$id2> # 比较五遍提交之间的距离
git diff <branch1>..<branch2> # 在三个支行之间相比较
git diff –staged # 比较暂存区和版本库差别
git diff –cached # 相比暂存区和版本库差别
git diff –stat # 仅仅相比总结消息

翻开提交记录

git log
git log <file> # 查看该文件每回提交记录
git log -p <file> # 查看每一次详细修改内容的diff
git log -p -2 # 查看最近一次详细修改内容的diff
git log –stat #翻看提交计算音讯

tig
Mac上能够利用tig代替diff和log,brew install tig

取得Git仓库

4.fatal: remote origin already exists.

化解办法如下:

    1、先输入$ git remote rm
origin

    2、再输入$ git remote add
origin  就不会报错了!

    3、若是输入$ git remote rm
origin 依旧报错的话,error: Could not remove config section
‘remote.origin’. 大家供给修改gitconfig文件的内容

   
4、找到您的github的安装路线,小编的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc

   
5、找到一个名称叫gitconfig的文书,展开它把里面包车型客车[remote "origin"]那一行删掉就好了!

 

 

    尽管输入$ ssh
-T git@github.com
    现身错误提示:Permission denied
(publickey).因为新生成的key不能够参预ssh就能够招致连日不上github。

    解决办法如下:

    1、先输入$ ssh-agent,再输入$ ssh-add
~/.ssh/id_key,那样就可以了。

    2、如若照旧要命的话,输入ssh-add
~/.ssh/id_key 命令后边世报错Could not open a connection to your
authentication agent.消除办法是key用Git
Gui的ssh工具生成,这样生成的时候key就径直保存在ssh中了,不须要再ssh-add命令参预了,别的的user,token等布署都用命令行来做。

   
3、最佳检查一下在你复制id_rsa.pub文件的剧情时有未有产生多余的空格或空行,有个别编辑器会帮你增加那一个的。

 

 

    假如输入$ git push origin
master

    提醒出错音信:error:failed to push
som refs to …….

    解决办法如下:

    1、先输入$ git pull origin master
//先把远程服务器github上边包车型大巴文本拉下来

    2、再输入$ git push origin
master

    3、假如出现报错 fatal: Couldn’t find
remote ref master或然fatal: ‘origin’ does not appear to be a git
repository以及fatal: Could not read from remote repository.

    4、则须要重新输入$ git remote add
origin

 

 

   
使用git在该地创制三个门类的长河

    $ makdir ~/hello-world   
//创制一个品种hello-world
    $ cd ~/hello-world      
//展开那个种类
    $ git init            
//初始化 
    $ touch README
    $ git add README       
//更新README文件
    $ git commit -m ‘first commit’    
//提交更新,并注释音信“first commit”
    $ git remote add
origin     
//连接远程github项目  
    $ git push -u origin master   
 //将本地品种更新到github项目上去

 

   

    gitconfig配置文件

         Git有八个工具被可以称作git
config,它同意你收获和设置配置变量;那么些变量能够决定Git的外观和操作的种种方面。这几个变量能够被寄存在八个不等的岗位: 
         1./etc/gitconfig
文件:饱含了适用于系统有着用户和全体库的值。若是您传递参数选项’–system’
给 git config,它将明了的读和写这一个文件。 
         2.~/.gitconfig 文件
:具体到您的用户。你能够经过传递–global 选项使Git
读或写那么些一定的公文。
         3.位居git目录的config文件
(相当于 .git/config)
:无论你眼下在用的库是怎么样,特定指向该单一的库。每一个等第重写前一个等级的值。因而,在.git/config中的值覆盖了在/etc/gitconfig中的同八个值。
        在Windows系统中,Git在$HOME目录中查找.gitconfig文件(对大多人的话,位于C:\Documents
and Settings\$USETiggo下)。它也会查找/etc/gitconfig,固然它是抵触于Msys
根目录的。那恐怕是您在Windows中运维安装程序时调整安装Git的任什么地点方。

 

        配置相关信息:

        2.1 当你安装Git后第一要做的事情是设置你的用户名称和e-mail地址。那是不行首要的,因为老是Git提交都会选用该消息。它被恒久的放置到了你的提交中:

  $ git config –global
user.name “John Doe”

  $ git config –global
user.email johndoe@example.com

 

       2.2    你的编辑器(Your Editor)

  未来,你的标志已经设置,你能够铺排你的缺省文本编辑器,Git在必要你输入一些音信时会使用该公文编辑器。缺省事态下,Git使用你的系统的缺全省统编辑器,这一般恐怕是vi 恐怕 vim。假诺您想采用一个例外的公文编辑器,举例Emacs,你可以做如下操作:

  $ git config –global
core.editor emacs

 

      2.3 检查你的装置(Checking Your Settings)

  借使您想检查你的设置,你能够行使 git config –list 命令来列出Git能够在该处找到的装有的装置:

  $ git config
–list

      你也得以查看Git以为的贰个特定的重视字近来的值,使用如下命令 git config {key}:

  $ git config
user.name

 

      2.4 获取扶助(Getting
help)

  借使当您在应用Git时索要支持,有二种艺术能够获得别的git命令的手册页(manpage)支持音信:

  $ git help
<verb>

  $ git <verb>
–help

  $ man
git-<verb>

  比如,你能够运维如下命令获取对config命令的手册页援助:

  $ git help config

 

开头化八个本子仓库

git init

Clone远程版本库

git clone
git@xbc.me:wordpress.git

加多远程版本库origin,语法为 git remote add [shortname] [url]

git remote add origin
git@xbc.me:wordpress.git

翻开远程旅馆

git remote -v

提交你的修改

加被欺骗前修改的文本到暂存区

git add .

若是您活动追踪文件,包括你早就手动删除的,状态为Deleted的文本

git add -u

交给你的改换

git commit –m “你的笺注”

推送你的立异到长途服务器,语法为 git push [远程名] [本土分支]:[长距离分支]

git push origin master

翻看文件状态

git status

盯住新文件

git add readme.txt

从脚下跟踪列表移除文件,并完全除去

git rm readme.txt

仅在暂存区删除,保留文件在当前目录,不再追踪

git rm –cached readme.txt

重命名文件

git mv reademe.txt readme

查看提交的历史记录

git log

修改最终贰回提交注释的,利用–amend参数

git commit –amend

忘记提交某个修改,下边包车型大巴三条命令只会赢得二个付出。

git commit –m “add readme.txt”
git add readme_forgotten
git commit –amend

即便你早已使用git add .,将修改过的文件a、b加到暂存区

这段时间您只想提交a文件,不想提交b文件,应该如此

git reset HEAD b

收回对文件的修改

git checkout –- readme.txt

查阅、切换、创造和删除分支
git br -r # 查看远程分支
git br <new_branch> # 创立新的支行
git br -v # 查看种种分支最终交给音讯
git br –merged # 查看已经被合併到眼下支行的支行
git br –no-merged # 查看尚未被联合到近些日子支行的分支

git co <branch> # 切换来有个别分支
git co -b <new_branch> # 创制新的分层,并且切换过去
git co -b <new_branch> <branch> #
基于branch创立新的new_branch

git co $id #
把某次历史提交记录checkout出来,但无分支消息,切换成别的分支会自动删除
git co $id -b <new_branch> #
把某次历史提交记录checkout出来,成立成三个分层

git br -d <branch> # 删除有个别分支
git br -D <branch> # 强制删除某些分支
(未被合併的分层被删去的时候要求强制)

支行合併和rebase
git merge <branch> # 将branch分支合併到当下支行
git merge origin/master –no-ff #
不要法斯特-Foward合併,那样可以生成merge提交

git rebase master <branch> # 将master rebase到branch,相当于:
git co <branch> && git rebase master && git co master && git merge
<branch>

Git补丁管理(方便在多台机械上支出同步时用)

git diff > ../sync.patch # 生成补丁
git apply ../sync.patch # 打补丁
git apply –check ../sync.patch #测量试验补丁能还是无法成功

Git暂存管理

git stash # 暂存
git stash list # 列所有stash
git stash apply # 复苏暂存的剧情
git stash drop # 删除暂存区

Git远程分支管理

git pull # 抓取远程酒馆全数支行更新并联合到地面
git pull –no-ff # 抓取远程货仓全数支行更新并统一到本地,不要快进合併
git fetch origin # 抓取远程酒馆更新
git merge origin/master # 将长途主分支合併到本地当前支行
git co –track origin/branch # 跟踪有些远程分支创制相应的本地分支
git co -b <local_branch> origin/<remote_branch> #
基于远程分支成立本地分支,成效同上

git push # push全部分支
git push origin master # 将本地主分支推到长途主分支
git push -u origin master #
将地面主分支推到长途(如无远程主分支则创设,用于开头化远程仓库)
git push origin <local_branch> # 成立远程分支,
origin是长途货仓名
git push origin <local_branch>:<remote_branch> #
成立远程分支
git push origin :<remote_branch> #先删除本地分支(git br -d
<branch>),然后再push删除远程分支

主干的分层管理

创立多个拨出

git branch iss53

切换专门的学业目录到iss53

git chekcout iss53

将地方的命令合在一同,创立iss53分支并切换成iss53

git chekcout –b iss53

联合iss53分支,当前工作目录为master

git merge iss53

统一实现后,未有出现争执,删除iss53分支

git branch –d iss53

拉去远程商旅的数额,语法为 git fetch [remote-name]

git fetch

fetch 会拉去最新的远程宾馆数据,但不会自动到当前目录下,要自行合併

git pull

**翻看远程旅舍的音讯 **
git remote show origin

创建地点的dev分支追踪远程货仓的develop分支
git checkout –b dev origin/develop

Git远程商旅管理

git remote -v # 查看远程服务器地址和储藏室名称
git remote show origin # 查看远程服务器旅社状态
git remote add origin git@
github:robbin/robbin_site.git
// 增多远程饭店地址
git remote set-url origin git@
github.com:robbin/robbin_site.git
# 设置远程货仓地址(用于修改远程饭店地址)
git remote rm <repository> # 删除远程仓库

始建远程酒馆

git clone –bare robbin_site robbin_site.git #
用带本子的花色创造纯版本仓库
scp -r my_project.git git@
git.csdn.net:~ #
将纯饭店上传来服务器上

mkdir robbin_site.git && cd robbin_site.git && git –bare init #
在服务器创立纯客栈
git remote add origin git@
github.com:robbin/robbin_site.git
# 设置远程饭馆地址
git push -u origin master # 客户端第三遍提交
git push -u origin develop #
第二次将地点develop分支提交到长途develop分支,何况track

git remote set-head origin master # 设置远程仓库的HEAD指向master分支

也能够命令设置跟踪远程库和地点库

git branch –set-upstream master origin/master
git branch –set-upstream develop origin/develop

标签
git tag #翻开标签
git tag 标签名 #标签字称
git tag -a 标签字 -m 标签注释 #增添标签 带注释
git tag -d 标签名 #剔除标签
git push origin -tags #付给标签到长途货仓

链接与能源
图形化客户端

GitX (L) (OSX,
开源软件)
Tower (OSX)
Source Tree (OSX,
免费)
GitHub for Mac (OSX,
免费)
GitBox (OSX, App
Store)

指南和手册

Git 社区仿照效法书
专业 Git
像 git
那样思量
GitHub 帮助
图解
Git

客户端
下载 git OSX

下载 git Windows

下载 git Linux

</pre>

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注