关于git的一些指令及遇到的问题和解决方法

Posted on 2019-09-27 14:16  jessie-xian  阅读(193)  评论(0编辑  收藏  举报

git 代码托管

一,git安装

去Git官网上下载安装即可

二,ssh -key配置

1. 检查是否已经有SSH Key。
    $cd ~/.ssh   //如果说没有这个目录,就直接看第三步
2. 备份

  

3. 生成一个新的SSH。
$ssh-keygen -t rsa -C "email"

("email" git账号)
之后直接回车,不用填写东西。之后会让你输入密码。然后就生成一个目录.ssh ,里面有两个文件:id_rsa , id_rsa.pub

4. 把这个SSH放到github上。用公钥。先在GitHub上注册一个用户,然后进入account-setting ,把id_rsa.pub的内容复制进去就可以了。

用记事本打开id_rsa.pub文件,复制内容,在github.com的网站上到ssh密钥管理页面,添加新公钥,随便取个名字,内容粘贴刚才复制的内容。


 然后把id_rsa.pub里的内容复制进去就可以了。

三,配置账户

指令:

$ git config --global user.name “your_username” 
$ git config --global user.email “your_registered_github_Email”

设置邮箱地址(建议用注册giuhub的邮箱)

四,测试ssh keys是否设置成功

ssh -T git@github.com

  The authenticity of host 'github.com (192.30.252.129)' can't be established.

  RSA key fingerprint is 16:27:xx:xx:xx:xx:xx:4d:eb:df:a6:48.

  Are you sure you want to continue connecting (yes/no)? yes #确认你是否继续联系,输入yes

  Warning: Permanently added 'github.com,192.30.252.129' (RSA) to the list of known hosts.

  Enter passphrase for key '/c/Users/xxxx_000/.ssh/id_rsa': #生成ssh kye是密码为空则无此项,若设置有密码则有此项且,输入生成ssh key时设置的密码即可。

  Hi xxx! You've successfully authenticated, but GitHub does not provide shell access. #出现此句话,说明设置成功。

五,git指令

1.克隆代码
git clone 地址
2.提交
//先放进本地仓库
git add .
git commit -m '本次提交备注'
git status    //查看仓库状态
3.推到远程仓库
git push 
4.将本地更新为最新状态
git pull    //将当前分支绑定的远程分支的最新的修改拉取到本地,一般在我们push之前都应该pull拉取一下查看是否有冲突
5.本地回退版本
git reflog //回溯历史版本
git reset --hard //回溯到指定状态,只要提供目标时间点的哈希值
6.分支操作

https://jingyan.baidu.com/article/48206aea68e69f216ad6b33f.html

 git branch     //显示分支一览表,同时确认当前所在的分支
 git checkout -b aaa //创建名为aaa的分支,并且切换到aaa分支
  (git branch aaa //创建名为aaa的分支
    git checkout aaa // 切换到aaa分支)能和git branch -b aaa 得到同样的效果
7.合并分支
git checkout <主分支>             //先切换到合并的分支
git merge <被合并的分支>  -m '填写一个合并的信息'         //再将指定分支合并到当前分支
git push

查看当前已合并的和未合并过的分支,可见其他分支中没有合并的内容

git branch --merged
git branch --no-merged
8. git 本地分支与远程分支

(参考)https://www.cnblogs.com/lianghe01/p/5806518.html

github上已经有master分支 和dev分支
在本地

git checkout -b dev   // 新建并切换到本地dev分支
git pull origin dev     //本地分支与远程分支相关联

在本地新建分支并推送到远程

git checkout -b test
git push origin test   //这样远程仓库中也就创建了一个test分支

六,一些遇到的报错

1.同一份文件,在你提交时,有人比你更早更新了文件并上传,使你的本地文件并非最新。因此,在你想上传自己修改后的文件时,第一步git pull时,会报如下错误:
    error: Your local changes to the following files would be overwritten by merge:
            src/test/resources/application_context.xml
    Please, commit your changes or stash them before you can merge.
    Aborting

为解决此问题,做如下操作

git stash

隐藏本地修改

git pull

下载最新代码

git stash pop

从Git栈中读取最近一次保存的内容,恢复自己的本地修改
提示有无冲突
若有冲突,则解决冲突
若无,则直接提交

git add .
git commit  -m "comments"
2.当前分支与远程分支没有建立关联,提示运行 git push --set-upstream origin master2 与远程仓库建立关联,运行后即可通过 git push 推送成功
fatal: The current branch v2.0.6 has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin v2.0.6

复制执行即可

git push --set-upstream origin v2.0.6