zoukankan      html  css  js  c++  java
  • 在github上创建自己的代码仓库

    git用了很久了,github也用很久了,但一直都是使用别人的项目,

    最近想把自己写的一些代码放到自己的帐号上去

    以为就是很简单的代码推送,真正做一次时候才发现,原来坑还不少呢,

    就把这次的经历记录一下

    1,首先,准备工作,你得有一个自己的github帐号,其次,你得安装了git工具,最后你还得有自己的本地项目,

    2,在github上创建自己的远程代码仓库

    3,下载github客户端

    下载地址:

    http://windows.github.com

    安装成功并登录后如下

    4,添加本地目录到远程仓库

    在你的本地文件目录下右击,就会出现Git Bash选项,点击进入。

    5、设置用户名和邮箱地址。这两个值是作为上传时记录的值。输入命令:

    git config --global user.name "用户名"
    
    git config --global user.email "邮箱"

    设置好后可以用命令查看当前的设置:

    git config --global user.name

    6、初始化本地仓库

    git init

    此目录下会创建一个.git的文件(此文件可能会隐藏)

    7,将该项目纳入.git版本控制中

    git add .

    一定要注意add和.之间是有空格的,否则会报错的

    8,将所有更改放到本地暂存区域,等待上传。

    git commit -m "此次上传的说明"

    9,连接远程仓库

    git remote add origin "https://github.com/GitHub用户名/代码仓库名称.git"

    可以通过git remote -v 查看本地链接到的远程仓库

    若分支设置错误,可以查看后切换分支

    【git remote rm origin】 删除现有远程仓库 
    【git remote add origin url】添加新远程仓库

    10、从远程仓库拉取所有更新(每次上传项目都要操作)

    git pull origin master

    注意:此处极易报错!

    因为远程代码仓库和本地代码仓库合并后,可能会有冲突,

    如有报错,使用git status查看状态

    本次就出现远程代码与本地合并失败情况

    此步先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pull


    因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,
    这句代码是在git 2.9.2版本发生的,最新的版本需要添加--allow-unrelated-histories
    git pull origin master --allow-unrelated-histories

    补充:在 git pull origin master --allow-unrelated-histories此步操作时,.gitignore文件错误冲突并没有解决,只是强制合并忽略掉了,

    是我觉得.gitignore文件无关紧要没想去解决

    被朋友 发现没有解决此冲突就跳过就提交,虽然 我这是第一次对远程仓库作代码提交,而冲突的问题又不大才给忽略,

    但是这个操作非常不好,在远程有大量代码时候,出现此问题,还是不要这样操作,解决冲突文件再提交,是必须 要做不能忽略的步骤,

     另外 ,补充下.gitignore介绍

    在工程实现过程中,会生成一些中间文件,或者在项目中的部分文件是不需要进行版本管理的。

    对于这些文件应该对于Github来讲是透明的。Github提供这种功能,可以自己指定哪些文件可以不被管理。

    具体方法是在版本管理的根目录下(与.git文件夹同级)创建一个  .gitignore(gitignore是隐藏文件,所以前面有个点)

    在进行协作开发代码管理的过程中,常常会遇到某些临时文件、配置文件、或者生成文件等,

    这些文件由于不同的开发端会不一样,如果使用git add . 将所有文件纳入git库中,那么会出现频繁的改动和push,这样会引起开发上的不便。

    Git可以很方便的帮助我们解决这个问题,那就是建立项目文件过滤规则。

    Git可以很方便的帮助我们解决这个问题,那就是建立项目文件过滤规则。git中提供两种过滤机制,

    一种是全局过滤机制,即对所有的git都适用;

    另一种是针对某个项目使用的过滤规则。

     例如:

    # 此为注释 ,将被 Git 忽略
    # 忽略所有 .a 结尾的文件
    *.a
    # 但 lib.a 除外
    !lib.a
    # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    /TODO
    # 忽略 build/ 目录下的所有文件
    build/
    # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    doc/*.txt
    # 会忽略掉 doc/ 里面所有的txt文件,包括子目录下的(**/ 从 Git 1.8.2 之后开始支持 **/ 匹配模式,表示递归匹配子目录下的文件)
    doc/**/*.txt
    local.properties #过滤具体文件
    !local.properties#添加具体文件
    *.[oa]#忽略所有以 .o 或 .a 结尾的文件

    因为git是分布式管理,所以尽量不要在master主分支上作开发,

    例如自己有一个项目,在外面开发时,可以使用分支1,在家开发时可以使用分支2,如果有其他人参入 ,分别 使用分支3,4,5

    每次提交本地代码时候,先合并远程master主分支到本地,再提交

    1.创建本地分支

    git branch 分支名

     
    2.切换本地分支
    git checkout 分支名
     
    本地分支提交
    git  add .
    git  commit -m ‘dev'
    git push -u origin dev

    合并本地分支到master

    git  checkout master
    git pull origin master
    git merge origin/master  //合并分支
    git status
    On branch master
    Your branch is ahead of 'origin/master' by 12 commits.
      (use "git push" to publish your local commits)
    nothing to commit, working tree clean

    上面的意思就是你有12个commit,需要push到远程master上 
    执行下面命令即可

    git push origin master
     
  • 相关阅读:
    Unzip 解压报错
    Linux ftp安装
    关于vsftp出现Restarting vsftpd (via systemctl): Job for vsftpd.service failed because the control 的解决办法
    ASP.NET开发知识总结
    移动端开发调试方法总结
    移动H5优化指南
    基于windows下,node.js之npm
    微服务理解
    SQL Server 触发器
    jQuery验证控件jquery.validate.js使用说明+中文API
  • 原文地址:https://www.cnblogs.com/zhixi/p/9584624.html
Copyright © 2011-2022 走看看