图片 2

Git创建分支并提交项目,Git分布式版本控制系统快速参考

git 成立分支, 切换分支, 合併分支,
删除分支及提交[commit提交到当地旅舍push名利提交到长途服务器],
检出[pull], 冲突修改,
本地旅舍同步远程服务器[pul和push命令l]操作

用惯了SVN,猛然转到Git难免有一些不适,写个笔记好好备忘总括一番。

一.安装与配置Git
   
Git是叁个开源的遍及式源代码版本调控系统,重假设在Linux/Unix系统上选择,现已被移植可以到Windows系统上使用.
   
Windows上的Git是msysgit,图形分界面情状得以选取tortoisegit,一般合作使用,先安装msysgit再安装tortoisegit.
    Git下载地址:
   
    TortoiseGit下载地址:
   
    安装msysgit和tortoisegit时大都都以选项暗中同意选项.
    在Windows平台安装msysgit后,Git的命令遭受是Git Bash.

支付中常用操作

一、先看历史(imooc上的三个图):

    配置Git的User信息.   
    $ git config –global user.email “gymsoft@163.com”
    $ git config –global user.name “gym”

去除文件:git rm 文件名[删去本地git旅舍文件,
提交后远程服务器上的文件才会无影无踪]

图片 1

    Git的选用可以参考官方文书档案:
   

查看情形:git status

二、Git与Svn

二.Git服务器搭建
    一般须求搭建三个Git服务器作为长途商旅(Remote
Repository),用于开辟团队存款和储蓄和置换开拓成果的媒介.
    实际上对于布满式方式来讲,远程仓库和本土宾馆管理的剧情是同样的
    远程酒店能够使用Github或和谐搭建Git服务器。
   
假若在Windows平台搭建Git服务器,还亟需CopSSH软件作为ssh服务器,使用putty或别的ssh客户端软件采访和管制服务器.

累加记录:git add 文件名 或 git add .
[将文件提交到长途git服务器上]

Git跟SVN同样有协调的集英式版本库或服务器。但,Git更偏向于被选拔于分布式情势,也便是各种开辟人士从大旨版本库/服务器上chect
out代码后会在和睦的机械上克隆一个和煦的版本库。能够如此说,假若你被困在多个不可能三翻五次互连网的地点时,如同在飞行器上,地下室,电梯里等,你照样可以交给文件,查看历史版本记录,创造项目分支,等。对某个人的话,那看似没多大用处,但当您蓦然遇上未有互连网的意况时,这几个将缓和你的大麻烦。

    配置Git服务器(Windows平台),需要CopSSH + Git
    先安装msysgit,再安装CopSSH.
    打开CopSSH,创立帐户,激活帐户.
    复制git的文书到copssh的bin目录下
    bin/libiconv-2.dll
    libexec/git-core/git.exe
    libexec/git-core/git-receive-pack.exe
    libexec/git-core/git-upload-archive.exe
    libexec/git-core/git-upload-pack.exe

增加描述:git commit -m
“描述或备注类似svn提交时的疏解”

三、那什么样状态推荐应用svn

三.Git常用操作命令
1.创办版本库(init)
   
版本库又叫旅馆(Repository),是存放须求管理的公文的目录,创制版本库正是开创三个索引并早先化.
    $ mkdir repo
    $ cd repo
    $ pwd
    /E/repo
    $ git init
   
开端化库后,将会在版本库目录下创建三个.git的躲藏目录,是由Git处理的版本库. 
 
    发轫化后将会时有发生一个主分支(Branch): master,能够查阅版本库的情状
    $ git status

同台数据:git pull 
[赢得git远程服务器上的多寡也能够切实到某一分支如: git pull origin 分支名]

SVN具备的悲观锁的功力,能够落到实处多少个用户在编辑时对文件进行锁定,阻止四人还要编辑
两个文本。这一悲观锁的功能是 Git 所不享有的。对于以二进制文件
(Word文书档案、PPT演示稿)
为主的版本库,为防止多人还要编成立成合併上的不方便,
建议接纳SVN做版本调整。

2.添Gavin书进版本库管理(add)
    $ git add .          #累加全体文件
    $ git add filename  #增进钦定文件
    修改文件也是用git add

付出数据:git push origin 分支名

四、Git职业原理

3.交由改动(commit)
    用commit命令提交更动,需求备注音讯.
    $ git commit -m “description”

分层操作

图片 2

4.暂存改造(stash)
    将工作区中有修改还未提交的改观储藏到暂存栈中,清到底工作区
    $ git stash
    展现暂存栈中收藏的退换
    $ git stash list
    将收藏的变动从暂存栈中恢复生机到工作区
    $ git stash pop
    清除暂存栈中内容
    $ git stash clear
   
5.支行管理(branch,merge)
    $ git branch branch_name    #创设新支行
    $ git checkout branch_name  #签出并切换来新支行
    只怕一条命令做两条命令的事: 创造新支行并切换来新支行
    $ git checkout -b branch_name
    查看当前支行
    $ git branch
    在探问当前支行的情景
    $ git status
    合併分支,将分支上的干活联合到master分支上.
    $ git checkout master
    $ git merge branch_name
    删除分支
    $ git branch -d branch_name

翻开分支:git branch

五、git安装配置

6.版本库分享与更新(push,fetch,pull)
    将本地版本库推送到长途版本库
    $ git push origin master
    抓取远程版本库
    $ git fetch origin deve
    抓取远程版本库并联合到本地版本库
    $ git pull origin deve

始建分支:git branch 分支名

mac下实际不须求安装直接在指令窗口输入git就可以弹出安装确认,这种艺术安装暗中同意是安装到/usr/bin目录下,且无需配置碰到变量

7.标签(tag)
    创设标签
    $ git tag -a ‘release_1’ -m ‘tag code’ HEAD
    推送标签到长途版本库
    $ git push origin tag release_1
    查看标签
    $ git tag -l
    删除标签
    $ git tag -d release_1

切换分支:git checkout 分支名

另一种方法正是手动安装dmg包,要求配置情形变量

四.版本库操作示例
    1.远程版本库(Remote Repository)操作示例
   
在事实上行使中一般将版本库放在远程服务器上,开荒组织不直接操作远程服务器,每种开垦成员从远程服务器上克朗多个版本库到地方。
   
开垦工作将要该地版本库中完结,改造后提交到本地版本库,再推送到长途版本库中.
    当然,远程版本库(Remote
Repository)能够投身远程服务器上,也足以放本地.

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

官方网址下载:

    (1)成立新的长距离版本库
    $ mkdir remoterepo/project   
#创办空目录remoterepo/project作为项目远程版本库
    $ cd remoterepo/project        #步入创设的目录
    $ git init                    #将创制的目录开首化为版本库
    $ git status                  #翻看版本库状态

统一某分支到当前支行:git merge 分支名

vi ~/.bash_profile
export PATH="/usr/local/git/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:$PATH"
source ~/.bash_profile
重启一下终端,检查是否安装成功
git version

    (2)添Gavin件进版本库管理并提交
   
在目录remoterepo/project下加多一些文件,再将那一个文件加多进版本库管理
    $ git add .                    #充足文件进版本库管理-增多全部文件
    $ git add filename            #添Gavin书进版本库管理-增添内定文件
    $ git commit -m “add file”    #付给改变

  [举个例子,若是要将开采中的分支(deve),合併到稳定分支(master),
 
   首先切换的master分支:git checkout master。
 
   然后推行统一操作:git merge deve。
 
   假设有冲突,会提醒您,调用git status查看冲突文件。
 
   化解争执,然后调用git add或git rm将解决后的公文暂存。
 
   全数顶牛化解后,git commit 提交改换。]

用户消息配置:

    (3)创立新支行deve作为开辟分支
    $ git branch deve              #创设新支行deve
    $ git checkout deve            #签出并切换来新分支   
    $ git checkout -b deve        #依旧一条命令做两条命令的事:
成立新支行并切换来新支行
    $ git branch                  #查看当前支行   
    $ git status                  #再看看当前支行的境况

  注意点:

$ git config --global user.name "jager"
$ git config --global user.email jager@example.com

    $ git checkout -b master      #切换来主分支.

  分支衍合
   
 分支衍合和分支合併的差距在于,分支衍合不会保留合併的日记,不留痕迹,而
分支合併则会保留合併的日志。
     要将开采中的分支(dev),衍合到安定分支(master)。
     首先切换的master分支:git checkout master。
     然后实施衍和操作:git rebase deve
     借使有争执,会提醒您,调用git status查看抵触文件。
     消除争辩,然后调用git add或git rm将缓慢解决后的文件暂存。
     全数争论化解后,git rebase –continue 提交更改。

或 直接编辑配置文件:

    2.地面版本库(Local Repository)操作示例
    (1)克隆远程版本库到地点
    $ mkdir localrepo             
    $ cd localrepo               
    $ git clone ../remoterepo/project/.git   
#克隆远程版本库到地头,暗中同意只克隆了master分支
    $ git clone -b master ../remoterepo/.git 
#选择克隆版本库的某一支行
    $ git clone git://github.com/…/….git 
#固然是从远程服务器克隆.
    推行之后就把版本库的剧情总体都复制过来了.
    $ cd project
 
    查看远程库新闻
    $ git remote              #在地面,远程旅社的暗许名称是origin
    origin
    $ git remote -v
    origin  e:/localrepo/../remoterepo/project/.git (fetch)
    origin  e:/localrepo/../remoterepo/project/.git (push)

除去分支:git branch -d 分支名

vi ~/.gitconfig

[user]
name = jager
email = jager@example.com
[color]
ui = auto
branch = auto
diff = auto
status = auto
[color "branch"]
current = green
local = yellow
remote = red
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = cyan
[alias]
st = status
di = diff
ci = commit
co = checkout
br = branch

    暗许只克隆了master分支,能够依远程库分支deve创制新支行deve
    $ git branch origin/deve
    $ git checkout deve

  删除分支试行git branch -d 分支名
 
   假设该支行没有统一到主分支会报错,能够用以下命令强制删除git branch -D
分支名

布署公共钥:

    (2)修改并付出分支deve
    $ git checkout deve    #签出分支
    $ git add .            #新添或涂改代码后,添Gavin书进版本库处理
    $ cat .gitignore      #不经意特定文件或目录
    #.[oa]
    #~

剔除远程分支:git push origin :name

== 生成git密钥 ==
ssh-keygen -t rsa -C "jager@example.com"
秘钥名称填写:git_rsa
其他默认即可

== 配置git密钥 ==
vim ~/.ssh/config
//增加以下内容,IdentityFile路径为你生成的git私钥文件路径
Host XXX
User git
IdentitiesOnly yes
IdentityFile /Users/你的用户名/.ssh/git_rsa

== 配置公钥 ==
拷贝公钥 pbcopy < ~/.ssh/git_rsa.pub 
添加到git管理平台

== FAQ ==
最后一步没配置可能出现错误:
Permission denied (publickey).
fatal: Could not read from remote repository.

    $ git diff           
#翻看staging文件差别,未增加进库管理时的距离
    $ git diff –cached    #翻开staging文件差别,已加多进库管理时的不一致

撤回修改:git checkout — file

六、git常用命令

    $ git commit -m “add file”  #提交更动,提交到地面版本库