zoukankan      html  css  js  c++  java
  • Git软件使用教程

    上传本地文件到github

    自从使用github以来,一直都是在github网站在线上传文件到仓库中,但是有时因为网络或者电脑的原因上传失败。最重要的原因是我习惯本地编辑,完成以后再一起上传github。看过了几个教程,总结出最适合自己的比较简单的方法。


    两种方法上传本地文件到github

    1. github在线上传文件夹

    在线上传也可以上传完整的文件夹结构,直接拖拽到上传文件页面的框中即可。

    1.1点击上传文件

    点击上传
    1.2 直接拖拽

    直接拖拽即可上传文件夹及文件夹里面的文件。如果点击 choose your files 就只能上传单个文件。


    直接拖拽

    2. 通过git工具上传本地文件夹(本地项目)

    2.1 下载git工具

    选择对应版本下载
    2.2 下载完成后安装完成,注意在安装过程中可以选择创建桌面快捷方式

    桌面快捷方式
    2.3 绑定用户

    打开git-bash.exe(直接在桌面上点击右键,或者点击开始按钮找到Git Bash)


    运行gitBash.gif


    在打开的GIt Bash中输入以下命令(用户和邮箱为你github注册的账号和邮箱)

    1.  $ git config --global user.name "hanyuntao"
    2.  $ git config --global user.email "hanyuntaocn@163.com"

    Paste_Image.png
    2.4 设置SSH key(git中sshkey有何作用?
    2.4.1 生成ssh key

    首先检查是否已生成密钥cd ~/.ssh,如果返回的ls有3个文件,则密钥已经生成。


    密钥生成


    如果没有密钥,则通过

    $ ssh-keygen -t rsa -C "hanyuntaocn@163.com"

    生成,生成过程中一路按3次回车键就好了。(默认路径,默认没有密码登录)
    生成成功后,去对应目录C:Usershyt.ssh里(hyt为电脑用户名,每个人不同)用记事本打开id_rsa.pub,得到ssh key公钥。


    ssh key公钥
    2.4.2 为github账号配置ssh key

    切换到github,展开个人头像的小三角,点击settings,然后打开SSH keys菜单, 点击Add SSH key新增密钥,填上标题(最好跟本地仓库保持一致)。


    设置sshkey.gif


    接着将id_rsa.pub文件中key粘贴到此,最后Add key生成密钥吧。

    2.5 上传本地项目到github

    2.5.1 创建一个本地项目

    这是我自己创建的几个文件夹及文件。


    本地项目
    2.5.2 建立本地仓库

    1.首先进入text文件夹

    cd d:text

    首先进入text文件夹

    2.执行指令:git init


    执行git init

    初始化成功后你会发现项目里多了一个隐藏文件夹.git


    隐藏的文件夹

    3.执行指令:git add .
    将所有文件添加到仓库


    执行git add .

    4.执行指令:git commit -m "提交文件"
    双引号内是提交注释。


    提交文件


    2.5.3 关联github仓库

    1.到github text仓库复制仓库地址


    复制仓库地址


    2.执行指令:git remote add origin https://github.com/hanyuntao/text.git



    5.

    可以通过如下命令进行代码合并【注:pull=fetch+merge]

    git pull --rebase origin master

    如何解决failed to push some refs to git
    5

    执行上面代码后可以看到本地代码库中多了README.md文件

    如何解决failed to push some refs to git
    2.5.4 上传本地代码

    执行指令:git push -u origin master


    执行指令
    2.5.5完成了

    可以看到我们的本地项目已经上传到了github上了。


    完成了

    注意:git是不能管理空的文件夹的,文件夹里必须有文件才能上传。(以下解释)

    git和 svn不同,仅仅跟踪文件的变动,不跟踪目录。所以,一个空目录,如果里面没有文件,即便 git add这个目录,另外在别处 check out 的时候,是没有这个空目录的。

    只跟踪文件变化,不跟踪目录,这么设计是有原因的。但这会带来一些小麻烦。有时候,确实需要在代码仓库中保留某个空目录。比如测试时需要用到的空目录。下面来看看如何解决。

    其实这里有两种情况:

    一、目录是空的

    这种情况下只需要在目录下创建.gitkeep文件,然后在项目的.gitignore中设置不忽略.gitkeep

    .gitkeep 是一个约定俗成的文件名并不会带有特殊规则

    二、目录中已经存在文件

    那就需要首先在根目录中设置!.gitignore,然后在目标目录也创建一个.gitignore文件,并在文件中设置

    1
    2
    *
    !.gitignore

    这样就可以在项目中提交空目录了。

    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如:

    1
    2
    3
    4
    5
    6
    7
    # 此为注释 – 将被 Git 忽略
     
    *.a        # 忽略所有 .a 结尾的文件
    !lib.a     # 但 lib.a 除外
    /TODO      # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/     # 忽略 build/ 目录下的所有文件
    doc/*.txt  # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

    规则很简单,不做过多解释,但是有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

    1
    2
    3
    git  rm  -r --cached .
    git add .
    git commit -m  'update .gitignore'

    问题:github/gitlab 管理多个ssh key 

    (转载自:https://www.cnblogs.com/fanyong/p/3962455.html)

    以前只使用一个 ssh key 在github上提交代码,由于工作原因,需要再添加一个ssh key在公司的 gitlab上提交代码,下面记录下配置过程,防止遗忘。
    说明下我的环境是 Win7 + msysgit + GitBash, 相信 *nux + bash 也是同样的道理。

    生成并添加第一个ssh key

    第一次使用ssh生成key,默认会在用户~(根目录)下生成 id_rsa, id_rsa.pub 2个文件;所以需要添加多个ssh key时也会生成对应的私钥和公钥。

    $ ssh-keygen -t rsa -C "youremail@yourcompany.com"
    

    在Git Bash中执行这条命令一路回车,会在 ~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub 两个文件,用文本编辑器将 id_rsa_pub 中的内容复制一下粘贴到github(gitlab)上。

    生成并添加第二个ssh key

    $ ssh-keygen -t rsa -C "youremail@gmail.com"
    

    注意不要一路回车,要给这个文件起一个名字, 比如叫 id_rsa_github, 所以相应的也会生成一个 id_rsa_github.pub 文件。

    目录结构如下:

    添加私钥

    $ ssh-add ~/.ssh/id_rsa
    $ ssh-add ~/.ssh/id_rsa_github
    

    如果执行ssh-add时提示"Could not open a connection to your authentication agent",可以现执行命令:

    $ ssh-agent bash
    

    然后再运行ssh-add命令。

    # 可以通过 ssh-add -l 来确私钥列表
    $ ssh-add -l
    
    # 可以通过 ssh-add -D 来清空私钥列表
    $ ssh-add -D
    

    修改配置文件

    在 ~/.ssh 目录下新建一个config文件

    touch config
    

    添加内容:

    # gitlab
    Host gitlab.com
        HostName gitlab.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa
    
    # github
    Host github.com
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_github
    

    测试

    $ ssh -T git@github.com
    

    输出
    Hi user! You've successfully authenticated, but GitHub does not provide shell access. 就表示成功的连上github了

    git上存项目文件的坑Permission denied, please try again.

    今天使用gitlab上存项目文件。
    发现配置了ssh,还是在push的时候,需要输入密码,并且出现如下错误:

    Permission denied, please try again.
    

    我的ssh没有问题,并且密码也没有问题。

    问题是因为gitlab的权限中,上存文件不是使用ssh协议,而是使用http协议。

    吐了一口老血。

    所以如果你出现类似的问题,试下用http协议。

    IntelliJ IDEA git 项目检出、更新、提交、解决冲突、取消提交、还原代码

    检出项目

    • 前提:在开发环境中安装好IntelliJ IDEA和git.
    • 打开idea,选择VCS→Checkout from Version Control→Git或者点击VCS→Git→Clone

    • 或者

    • 出现填写项目详情窗口

    • 从gitlab官网复制远程地址

    • 可以选Test按钮测试远程服务是否可用,出现success为服务正常,之后选择相应项目类型,检出即可

    更新项目

    更新项目有两种方式第一种为更新当前窗口下的整个项目

    • 第二种为更新相应文件,文件右键Git→Repository→Pull,出现更新详情窗口

     

     

    • 选择Pull

    • 窗口左下方出现本次更新的内容

    提交文件

    新建TestController测试类

    • 文件右键选择add,表示文件交给git托管

    • 选择文件右键Git→Commit file ,提交文件

    • 左上角会默认比对出本地仓库和远程仓库的区别,勾选文件前的单选框提交相应文件,左侧中部为备注框,选择Commit and push (提交)
      在这里插入图片描述
    • 选择文件右键Git→Repository→Push 上传文件
      这里写图片描述

    解决冲突

    • 当在本地修改的文件,别人也修改了且已提交到了远程服务器,这时需要解决冲突。为了模拟这个场景,对TestController这个方法同时修改服务器代码和本地代码。修改完成后提交文件

    • 填写备注后提交

    • 系统会检查出文件有冲突,提示需要合并,出现冲突窗口

    • 点击文件,即可进入详情页面

    • 详情页面分为三栏,左边为本地版本,中间为修改前版本,右边为服务器最新版本,左右两边代码不可以修改

    • 当前冲突页面1所指按钮可以切换冲突位置,2处按钮可以让冲突部分高亮显示,3处可以选择文件是否整体滑动。

    • 基于两个版本对中间版本修改后点击apply,即生成最终版本的文件,选择提交

    • 这时会提示上传失败,最好将文件重新编译一下,确认无误后重新push即可

    • 上传成功!

    取消提交

    有的时候我们不想push已经commit,可以在idea中进行如下操作取消
    首先我们模拟一个测试提交
    在这里插入图片描述
    项目右键选择GIT->Repository->Resrt HEAD
    在这里插入图片描述
    弹出回退页面
    在这里插入图片描述
    在To Commit中填入回退的版本信息, HEAD^ 代表回退到上次提交前,HEAD~n 数字代表往回退的版本数,回退的代码不会丢失,想要提交的话再次commit即可。

    还原代码

    假如我们还原开发了一半的代码或者自己做的实验性的功能,有什么快速的办法呢

      • 第一种就是手动还原,把自己新增的文件挨个删除,右键Git---->Compare with Branch ,把修改项目还原即可。优点是风险小,缺点是操作复杂,无法复原代码
      • 第二种是删除本地分支,从远程重新拉一个分支,拉下来的代码是最新版本的。优点是操作简单,缺点是无法复原代码,
      • 第三种是最推荐的,操作简单、风险小、代码可复原。idea git有一个仓库可以存储代码,选择项目右键----->Git–>Repository—>Stash Changes ,就会创建一个存储备份,以后需要的时候在Unstash Changes找到相应记录还原即可。也可以选择drop删除存储的代码。
  • 相关阅读:
    Solr的学习使用之(五)添加索引数据
    django视图层
    django的路由层
    第九章 MySQL 高可用(MHA)
    第八章 mysql的主从复制
    第七章 mysql的备份与恢复
    第六章 mysql日志
    第五章 存储引擎
    第四章 元数据 索引
    第三章 mysql 数据库接口程序以及SQL语句操作
  • 原文地址:https://www.cnblogs.com/bianchengxia/p/14229888.html
Copyright © 2011-2022 走看看