目录


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-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

  

Git使用过程中的问题的更多相关文章

  1. git rebase 过程中遇到冲突该怎么解决?

    在执行git rebase 过程中经常遇到问题,此时有点慌,一般如何解决呢? 1.先将本地的冲突手动解决 2.执行下面命令 git add . git rebase --contine  //继续re ...

  2. Git使用过程中出现项目文件无法签入Source Control的情况

    在VS中使用Git进行项目source control的过程中,有些文件不在source control之下,右键点击时,也找不到Undo, Commit命令 无法把他们签入进Source Contr ...

  3. git提交过程中遇到的 index.lock 问题导致无法提交的解决方法

    在提交代码的过程中,可能会遇到下面的问题: fatal: Unable to create 'C:/programLists/zzw-q1/.git/index.lock': File exists. ...

  4. 关于GIT使用过程中遇到的问题

    npm构建,将所需要安装的依赖添加至package.json文件中,使用cnpm i进行安装 #拉去指定项目的默认分支: git pull http://username:password@gitla ...

  5. git使用过程中遇到的问题及处理方法

    1. Your local changes to the following files would be overwritten by checkout:......Please commit yo ...

  6. git 使用过程中遇到的问题does not appear to be a git repository Could not read from remote respository

    想把本地的git库上传到github上.github已经新建了一个public仓库,利用网站的命令 git Bash报错:does not appear to be a git repository  ...

  7. 如何解决git====push 过程中出现的。error: failed to push some refs

    当我们在利用git  push 文件到仓库时出现了一下问题: ! [rejected] master -> master (fetch first)error: failed to push s ...

  8. git使用过程中遇到的错误

    1.使用git add "login.py" 然后git commit -m "add url"的时候报错.分支newtype也是存在的 nothing to ...

  9. git使用过程中的若干问题笔记

    1.关于本地分支创建之后,如何在远程创建同名分支并完成本地分支到远程分支的push 首先创建本地库分支以dev为例 然后输入命令git push --set-upstream origin dev / ...

随机推荐

  1. Android项目的targetSDK>=23,在低于Android6.0的部分测试机(类似华为)上运行时出现的系统权限问题

    相信大家对Android6.0以上的动态权限已经有所了解,很多童鞋也已经跃跃欲试地将自己项目的targetSDK升级到了23及其以上,很不幸的是我也成为了其中一员,然而我还是图样图森破了,升级之后的问 ...

  2. CVE-2012-0158 分析

    目录 CVE-2012-0158 分析&利用 1.实验环境 2.下载poc样本 3.调试并找到漏洞触发点 4.分析漏洞触发模块及流程 5.漏洞利用 6.总结 7.参考资料 CVE-2012-0 ...

  3. php学习----什么是常量

    PHP-什么是常量 1.什么是常量?常量可以理解为值不变的量(如圆周率):或者是常量值被定义后,在脚本的其他任何地方都不可以被改变.PHP中的常量分为自定义常量和系统常量(后续小节会详细介绍). 2. ...

  4. PAT乙级题:1003我要通过!

    #include <iostream> #include <string> #include <vector> #include <algorithm> ...

  5. gear gym 思维题

    题目:https://vj.69fa.cn/1fc993e7e0e1e6fa7ce4640b8d46ef8d?v=1552762626 这个题目,之前有一点思路,但是呢,后来又不知道怎么去执行,然后就 ...

  6. Jenkins+Ansible+Gitlab自动化部署三剑客-Ansible本地搭建

    可以通过git bash连接linux 关闭防火墙,禁用防火墙开机启动,并更爱selinux文件,重启 重新登录并检查禁用 getenforce 安装git yum -y install git ns ...

  7. 用python设置定时任务

    python中的轻量级定时任务调度库:schedule   提到定时任务调度的时候,相信很多人会想到芹菜celery,要么就写个脚本塞到crontab中.不过,一个小的定时脚本,要用celery的话太 ...

  8. Python中的Numpy入门教程

    1.Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过nu ...

  9. 测试中 unittest.main(verbosity=1) 是什么意思

    这里的verbosity是一个选项,表示测试结果的信息复杂度,有三个值0 (静默模式): 你只能获得总的测试用例数和总的结果 比如 总共100个 失败20 成功801 (默认模式): 非常类似静默模式 ...

  10. BZOJ2124:等差子序列(线段树,hash)

    Description 给一个1到N的排列{Ai},询问是否存在1<=p1<p2<p3<p4<p5<…<pLen<=N (Len>=3), 使得A ...