zoukankan      html  css  js  c++  java
  • Git使用过程中的问题

    目录


    Q-1:怎么拉取并切换到远程的分支

    Q-2:怎么修改上次提交的注释

    Q-3:怎么将多个commit合并为一个commit

    Q-4:进行了git reset之后,怎么回到git reset之前的状态

    Q-5:怎么将本地的代码提交到github上已有的仓库中

    Q-6:怎么避免每次push的时候都输入密码

     

     


     

     

     

     

     

    Q-1:怎么拉取并切换到远程的分支

      本地已经有一个代码库了(是从github上clone的),但是现在远程库中一个新的branch,怎么拉取远程分支,并在本地创建该分支(内容一样)。how to do?

    #查看远程有哪些分支
    git branch -r   
    

      得到的结果类似于下面所示:

    origin/dev_1
    origin/dev_2
    origin/dev_3
    origin/dev_4

      创建一个和远程分支分支,并且换到新创建分支

    git checkout -b 要在本地创建的新分支名称  远程分支的名称
    

      假设我要创建一个分支名称为test,并且选择远程的dev_3分支,那么可以使用下面的命令

    git checkout -b test origin/dev_3

      可是使用git branch来查看当前分支,已经切换到test分支了,并且内容和远程分支dev_3的内容一样。

    Q-2:怎么修改上次提交的注释

    #假设之前进行了下面两个操作:
    #git add 
    #git commit -m "msg"
    #
    #要修改提交信息msg的话,只需要用下面这个命令
    git commit --amend

      等待打开vim编辑器,重新修改之前的提交commit信息,保存并退出即可。

      修改完毕后可以git log看一下。

      如果是push到远程仓库的话,那么这个方法就不行了,因为这个命令只能修改本地的记录

    Q-3:怎么将多个commit合并为一个commit

      可以使用git rebase命令,具体参考:git rebase的用法

    Q-4:进行了git reset之后,怎么回到git reset之前的状态

      在进行git reset之前,会将原始的HEAD保存在ORIG_HEAD中,所以可以使用下面这个命令回到之前的状态:

    git reset ORIG_HEAD
    

      

    Q-5:怎么将本地的代码提交到github上已有的仓库中

      假设本地有一个代码库,但是没有提价到github上过,此时在github上新创建了一个新的仓库。需要将本地的代码库提交到新创建的这个代码库,可以这么做:

    git remote add origin https://github.com/Xxxx/xxxx.git
    

      之后就可以:

    git push -u origin master
    

      其实第一步可以省略,有了第一步之后,之后提交不用写完整的github库的地址了。

    Q-6:怎么避免每次push的时候都输入密码

      基础版

      先说一种方法:在当前用户的家目录创建.git-credentials文件

    vi ~/.git-credentials
    

      输入以下内容:

    https://{username}:{password}@github.com
    将username和password都修改为你在github上的用户名和密码
    

      保存并退出,然后执行下面这条命令:

    git config --global credential.helper store
    

      此后,每次push和pull的时候都不用输入用户名和密码了。

      但是你会不会这种方式不好:因为暴露了你的用户名和密码

      并且这种方式适用于这种地址:https://github.com/username/repositoryXxx.git

      高级版

      基础版容易泄露密码,此时可以使用ssh-key来解决这个问题:

      在机器上运行下面的命令,将邮箱地址替换为你自己的邮箱:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

      提示如下:

    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/ganlixin/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    .................
    

      当需要你输入的时候,请直接按Enter(回车键)即可,这样就会在你的$HOME/.ssh目录下生成三个文件:

    ganlixin@ubuntu:~$ ls $HOME/.ssh
    id_rsa  id_rsa.pub  known_hosts
    

      id_rsa保存有rsa密钥,id_rsa.pub保存的是公钥。

      此时请将你的公钥文件的内容,也就是id_rsa的内容拷贝一下,然后登录到github.com,点击右上角的头像,选择settings,然后选择SSH and GPG Keys,然后点击NEW SSH KEY,Title随意,Key就是id_rsa.pub的内容,然后点击Add SSH key即可。

      

      这种方式也有局限,它适用于:git@github.com:username/repositoryXxx.git这种使用ssh的格式

      推荐使用ssh-key 

      具体过程可以参考:

      1、https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

      2、https://help.github.com/en/articles/adding-a-new-ssh-key-to-your-github-account

      

  • 相关阅读:
    安卓系统隐藏滚动条
    jquery 失去焦点时输入框为空时自动填写默认内容
    移动端左右滑动代码
    [转]C#使用FFmpeg 将视频格式转换成MP4示例
    [转]Windows 使用ffmpeg将MP4视频转换为m3u8格式
    [转]搭建flutter开发环境
    [转]ios webview下纯JS实现长按
    [转]SQLServer查询数据库各种历史记录
    [转]Java多线程学习(总结很详细!!!)
    [转]安卓加固之so文件加固
  • 原文地址:https://www.cnblogs.com/-beyond/p/9050100.html
Copyright © 2011-2022 走看看