zoukankan      html  css  js  c++  java
  • git 相关

      

    github入门

     

    一、先了解

    相比CVSSVN优势:

    - 支持离线开发,离线Repository
    - 强大的分支功能,适合多个独立开发者协作
    - 速度快

    github 本地有仓库,储存着所有repository的历史;

     本地有缓冲区,指向你最近一次提交后的结果,改动一个文件,就是拿你改动的文件和缓冲区的文件进行 进行差异化比较 。

    二、注册与安装
    1、注册 https://github.com/
    3、安装完成后,桌面出现两个图标
     
    4、登录
    5、在Git Shell中设定本地用户信息
    git config --global user.name "Your Name Here"
    # Sets the default name for git to use when you commit
    git config --global user.email "your_email@example.com"
    # Sets the default email for git to use when you commit
    三、初始化和建立项目
    1、在网站上创建一repository
    2、本地通过命令行创建
         
        $ 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 https://github.com/defnngj/Hello-World.git  //连接远程github项目
        $ git push -u origin master     //将本地项目更新到github项目上去
     
    具体如下
    复制代码
    Windows PowerShell
    版权所有 (C) 2009 Microsoft Corporation。保留所有权利。
     
    > mkdir ~/Test123
     
     
        目录: C:Userssprying
     
     
    Mode                LastWriteTime     Length Name
    ----                -------------     ------ ----
    d----         2013/8/23      8:01            Test123
     
     
    > git init
      Initialized empty Git repository in C:/Users/sprying/Documents/GitHub/.git/
    > touch README
    > git add README
    > git commit -m 'first commit'
      [master (root-commit) 730016b] first commit
       1 file changed, 0 insertions(+), 0 deletions(-)
       create mode 100644 README
    > git remote add origin https://github.com/sprying/Test123.git
    > git remote -v
      origin  https://github.com/sprying/Test123.git (fetch)
      origin  https://github.com/sprying/Test123.git (push)
    > git push origin master
      Counting objects: 3, done.
      Writing objects: 100% (3/3), 206 bytes | 0 bytes/s, done.
      Total 3 (delta 0), reused 0 (delta 0)
      To https://github.com/sprying/Test123.git
       * [new branch]      master -> master
    复制代码
     
    四、Ps
    1、可以通过图形化界面来查看历史
     
    2.下载一个repository相关命令
    mkdir jekyll_demo
    cd jekyll_demo
    git init
     
    git checkout --orphan gh-pages
     
      
    Cloning into 'XXXX'...
    remote: Counting objects: 29510, done.
    remote: Compressing objects: 100% (8313/8313), done.
    remote: Total 29510 (delta 21676), reused 28255 (delta 20584)
    Receiving objects: 100% (29510/29510), 14.78 MiB | 157.00 KiB/s, done.
    Resolving deltas: 100% (21676/21676), done.
     
    git add helloworld.naxsu 进行添加到本地缓冲区
    git add . 添加当前目录下的所有文件
    git add *.c 添加以 .c 为后缀的文件
    git add index.jsp        添加指定文件
     
    git commit -m 'first commit' 提交到本地仓库
     
    创建一个指向你repository的origin
     
     
    3、 相关命令详细中文说明
    -------2013年9月13日0:36:05添加-----

    1) 远程仓库相关命令

    查看远程仓库:$ git remote -v

    添加远程仓库:$ git remote add [name] [url]

    删除远程仓库:$ git remote rm [name] 如 git remote rm origin 删除远程的origin连接

    修改远程仓库:$ git remote set-url --push [name] [newUrl]

    拉取远程仓库:$ git pull [remoteName] [localBranchName]

    推送远程仓库:$ git push [remoteName] [localBranchName]

    * 如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:

    $ git push origin test:master         // 提交本地test分支作为远程的master分支

    $ git push origin test:test              // 提交本地test分支作为远程的test分支

    2)分支(branch)操作相关命令

    查看本地分支:$ git branch

    查看远程分支:$ git branch -r (如果还是看不到就先 git fetch origin 先)

    创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支

    切换分支:$ git checkout [name]

    创建新分支并立即切换到新分支:$ git checkout -b [name]

    直接检出远程分支:$ git checkout -b [name] [remoteName] (如:git checkout -b myNewBranch origin/dragon)

    删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

    合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并

    合并最后的2个提交:$ git rebase -i HEAD~2 ---- 数字2按需修改即可(如果需提交到远端$ git push -f origin master 慎用!

    创建远程分支(本地分支push到远程):$ git push origin [name]

    删除远程分支:$ git push origin :heads/[name] 或 $ git push origin :[name] 

    * 创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)

    $ git symbolic-ref HEAD refs/heads/[name]

    $ rm .git/index

    $ git clean -fdx

    3)版本(tag)操作相关命令

    查看版本:$ git tag

    创建版本:$ git tag [name]

    删除版本:$ git tag -d [name]

    查看远程版本:$ git tag -r

    创建远程版本(本地版本push到远程):$ git push origin [name]

    删除远程版本:$ git push origin :refs/tags/[name]

    合并远程仓库的tag到本地:$ git pull origin --tags

    上传本地tag到远程仓库:$ git push origin --tags

    创建带注释的tag:$ git tag -a [name] -m 'yourMessage'

    4) 子模块(submodule)相关操作命令

    添加子模块:$ git submodule add [url] [path]

        如:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs

    初始化子模块:$ git submodule init  ----只在首次检出仓库时运行一次就行

    更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下

    删除子模块:(分4步走哦)

    1) $ git rm --cached [path]

    2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉

    3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉

    4) 手动删除子模块残留的目录

    5)忽略一些文件、文件夹不提交

    echo "class1" > class1.class :添加元素
    echo "java1" > java1.java
    echo "class1.class" >.gitignore :添加东东到提交忽视文件定义中
    vim .gitignore :添加自身到gitignore
    cat .gitignore :展示文件内容
    class1.class
    .gitignore
     
    或者

    在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

    target

    bin

    *.db

     
    6)查看历史记录
    git log :显示所有的提交( commit )记录
    git whatchanged :显示的信息比 git-log 更详细一些,可以显示具体的文件名
     
    7)其它命令
    查看相关设置
    git config --list
    git config user.name 
     
    获取对config命令的手册页帮助
    git help config
     
     
    echo "hello world" >> helloworld.naxsu
    ls *.naxsu
    helloworld.naxsu
     
    git status
     
     后悔药

    删除当前仓库内未受版本管理的文件:$ git clean -f

    恢复仓库到上一次的提交状态:$ git reset --hard

    回退所有内容到上一个版本:$ git reset HEAD^

    回退a.py这个文件的版本到上一个版本:$ git reset HEAD^ a.py

    回退到某个版本:$ git reset 057d 

    将本地的状态回退到和远程的一样:$ git reset –hard origin/master  

    向前回退到第3个版本:$ git reset –soft HEAD~3

    4、如何将本地一文件夹(已有许多文件)加入github控制
    打开shell
    git init
    git add . 
    git commit -m ''
    git checkout -b gh-pages //新建分支并设置为当前
    git branch-r //查看远程的分支,remote命令已执行,但还是未空,直到push之后
    git remote //查看远程
         // origin 发现只显示这个,且无法删除,查了原因,貌似全局设置文件etc/gitconfig有问题,我回避后如下设定,
    git remote rm origin // 报错 could not remove config section 'remote.origin'。既然无法删除,就只有在已有基础上修正了。
    git remote set-url
    git remote -v //查看远程name和url
    git push origin gh-pages
     
    至于远程上,只是建立了空的repository
    如果里面有内容,先要拿下来
    git pull origin gh-pages 再上传
     

    ------------------------------------关于可能出现的错误----------------------------------

    1.在执行

    git remote addorigin git@github.com:defnngj/hello-world.git

    错误提示:fatal: remote origin already exists.

    解决办法:

    git remote rm origin

     

    如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 

    我们需要修改gitconfig文件的内容

    找到你的github的安装路径,如C:UsersASUSAppDataLocalGitHubPortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8etc

    找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

  • 相关阅读:
    做了好几年的程序员,才发现自己天天都在用设计模式!
    先搞清楚这些问题,简历上再写你熟悉Java!
    Java中实现多线程继承Thread类与实现Runnable接口的区别
    JAVA中实现多线程的四种方式
    JDK和Cglib动态代理
    Java中选择排序,冒泡排序,插入排序,快速排序
    java死锁详解
    github常用命令
    字符串之StringBuffer 与 StringBuilder的对比
    基础数据类型之AbstractStringBuilder
  • 原文地址:https://www.cnblogs.com/dracula/p/3564369.html
Copyright © 2011-2022 走看看