zoukankan      html  css  js  c++  java
  • git教程

    简介:

    分布式版本控制系统。客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

    更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。 你可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以前的集中式系统中是无法实现的。

    工作区和暂存区

    1,windows安装

        在http://git-scm.com/download/win,下载。

      其他系统另外参考。

    2,安装好后,进入该项目目录,执行

      $ git init

    该命令将创建一个名为 .git 的子目录。通过 git add 命令来实现对指定文件的跟踪,然后执行 git commit 提交:

    $ git add *.c
    $ git add LICENSE
    $ git commit -m 'initial project version'

    另外还可以通过命令 git commit -a -m 'message'或者git commit -am 'message'来一次性提交。

    3,查看项目的状态:

    $ git status
    On branch master
    nothing to commit, working directory clean

    4,查看提交历史

    $ git log

    还有其他参数,另外参考。

    5,撤销操作

    $ git commit --amend
    撤销某个文件的提交
    git reset HEAD readme.txt

    6,分支新建和合并。git鼓励使用分支,创建和使用分支很简单。

    git banch test
    git checkout test
    
    或者
    git checkout -b test
    相当于上面两条命令

    在分支test上修改,提交后。切换会master:git checkout master,然后把分支test合并到master:

    git merge test

    合并成功后 ,会提示成功消息。

    删除分支。合并到主分支后,就可以删了分支。

    git branch -d test

    7,克隆远程仓库

    git clone https://github.com/schacon/ticgit

    7.1 添加远程仓库

    a,本地创建Git仓库:

    b,github创建同名仓库:

    c,本地git bash 运行

    git remote add origin git@github.com:hannibal2017/testGit.git

    d、推送到远程

    git push origin master
    $ git push origin master
    Counting objects: 32, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (17/17), done.
    Writing objects: 100% (32/32), 2.41 KiB | 0 bytes/s, done.
    Total 32 (delta 5), reused 0 (delta 0)
    remote: Resolving deltas: 100% (5/5), done.
    To git@github.com:hannibal2017/testGit.git
     * [new branch]      master -> master

    GitHub这时候就会出现本地有的文件

     另一个例子,截图如下

    7.2 git推送分支到GitHub

    7.2.1,在Git创建分支:

    git checkout -b helloSpring_annotation

    7.2.2,推动到GitHub

     git push origin HEAD -u

    7.2.3,提交到本地仓库

     git commit -am 'update project for annotation'

    7.2.4,推动到Github的分支

    git push origin helloSpring_annotation

    GitHub上查看,已经推动成功。

    8,图形化界面操作。

    $ git gui

    会出现一个图形化界面,操作方便。

    8,reset

    8.1 如果修改文件后,还未commit,运行

     git checkout -- fileName

    8.2 如果已经commit,运行

    git reset HEAD~1

    表示回退到上一个版本。

    然后再运行8.1,这样修改就撤销了。

    9,git pull失败

    Pull is not possible because you have unmerged files.

    本地的push和merge会形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)这样的引用。HEAD代表本地最近成功push后形成的引用。MERGE-HEAD表示成功pull后形成的引用。可以通过MERGE-HEAD或者HEAD来实现类型与svn revet的效果。

    解决:

    1.将本地的冲突文件冲掉,不仅需要reset到MERGE-HEAD或者HEAD,还需要--hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区。

    git reset --hard FETCH_HEAD

    2.git pull就会成功。

    10 地址获取和修改

        获取:git remote -v 

        修改: git remote set-url origin "新地址"

  • 相关阅读:
    原生JS---2
    PHP中include和require绝对路径、相对路径问题
    魔方(小玩具)
    html5技术介绍
    苹果电脑 快捷键
    写代码的心得,怎么减少编程中的 bug?
    http状态代码含义表
    开源项目
    蓝牙 CoreBluetooth
    减小iOS应用程序的大小
  • 原文地址:https://www.cnblogs.com/luoa/p/10498029.html
Copyright © 2011-2022 走看看