git使用经验总结

参考网址:https://www.cnblogs.com/hexiaobao/p/8134829.html

注意事项:写代码前一定要记得pull之后再写,不然会有一大堆冲突要解决。

一.git安装:

sudo apt-get install git

二.ssh -key配置

1.配置前需要先检测一下是否有ssh

cd  ~/.ssh

2.生成ssh -key

ssh-keygen -t  rsa -C "[email protected]" 后面是自己的邮箱(提示输入密码,不用的话三次回车),本地ssh -key配置完成;

配置gitLab上的ssh -key

1)进入~路径下,必须保证当前路径在~路径下

  在git命令行敲击 ssh-keygen -t  rsa -C "[email protected]" //建议写自己真实有效的邮箱地址。注意:在敲代码是不要将双引号也敲击进去。

  然后命令行会出现如下代码:

  Enter file in which to save the key (/c/Users/xxxx_000/.ssh/id_rsa):   //此时我们什么都不需要操作,直接回车就好

  Enter passphrase (empty for no passphrase):            //此时要你输入码(可以为空,直接回车就好,也可以输入你的密码,这个密码在你最后把本地资源推送到github上面的时候回会让你填写密码,此时密码隐藏,你输入进去是看不到的)

  Enter same passphrase again: //再次确认密码(如果你第一次有输入密码,这次就再输一次,如果没有直接回车就行了)

  Your identification has been saved in /c/Users/xxxx_000/.ssh/id_rsa. //生成的密钥

  Your public key has been saved in /c/Users/xxxx_000/.ssh/id_rsa.pub. //生成的公钥

  The key fingerprint is:

  e3:51:33:xx:xx:xx:xx:xxx:61:28:83:e2:81 [email protected]

  *本机已完成ssh key设置,其存放路径为:c:/Users/xxxx_000/.ssh/下。其中xxxx_000为你的用户名。

 2)添加ssh key 到Github上
  首先登陆Github,点击右上角的“▼”→Settings→SSH kyes→Add SSH key。
  然后在打开c:/Users/xxxx_000/.ssh里面的id_rsa.pub文件,全选复制公钥内容
  也可以在git bush中的命令行输入cat ~/.ssh/id_rsa.pub,将得到公钥

  Title自定义,将公钥粘贴到GitHub中Add an SSH key的key输入框,最后“Add Key“

3.配置账户

$git config --global user.name "username"

$git config --global user.email "邮箱地址"

eg:

  $ git config --global user.name “your_username” #设置用户名

  $ git config --global user.email “your_registered_github_Email” #设置邮箱地址(建议用注册giuhub的邮箱)

4、测试ssh keys是否设置成功。

  ssh -T [email protected]

  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.创建仓库(公开)

步骤:

  点击github主页右上角的+里面的new repository 
  在repository name栏中输入仓库的名称
  description 栏中可以设置仓库的说明
  piblic(公开)通用 private(非公开)收费
  勾选Initialize this repository with a README ,如果想向GitHub添加手中已有的Git仓库,建议不要勾选
  Add.gitignore 下拉框中选择要使用的框架
  Add a license选择添加许可协议文件
  点击create repository按钮,完成仓库的创建

2、克隆之前首先要选择克隆文件的位置(cd)

       1).克隆前先在当前目录新建一个Git代码库

       $ git init


  2).clone已有仓库
  git clone [email protected]:XXX/yyyy.git //XXX为github的用户名,yyy为仓库名

3、项目编码提交相关:

  逻辑参考:https://www.cnblogs.com/chenwolong/p/GIT.html

  1)git checkout 自己的分支   //切换到自己的分支

  2)git pull  //拉取代码(很重要,昨天惨痛的教训,手动解决了差不多一下午的代码冲突)

  3)git status   //编写完代码后查看被改过的文件

  4)git add 要提交的文件  //添加到

       5)git commit -m '提交描述'  //添加到

        6)git push origin 要提交的分支

4、创建和合并分支

  1)git branch 分支名 创建分支,但依旧在当前分支

  2)git checkout -b 分支名 创建分支并切换到该分支

  3)git checkout master

  ???git checkout 自己的分支   git rebase master是啥意思

5、版本回退

  git reset --hard 要回退的版本

6、推进历史

  git log

       tig

7、git提交错了分支

  git revert

       参考:https://blog.csdn.net/q358543781/article/details/54708736

8、git回滚后本地代码落后

  使用git push -f origin nora(是本地强制覆盖远程)

9、编码前忘记pull,导致冲突:

  使用git stash放置暂存区,本地代码回退到上一次提交时的代码,git pull后,使用 git stash pop @{0},本地代码恢复,

  参考文档:https://wenku.baidu.com/view/6a25f40653d380eb6294dd88d0d233d4b14e3f35.html

10、提交代码不是直接提交到master分支,而是创建一个merge request请求

  参考:https://blog.csdn.net/qq_33829154/article/details/81364047

扩展:

1)http://www.runoob.com/note/35938

2)revert和reset的区别

3)git remote 远程仓库位置移动,本地如何修改。

          git remote -v 查看当前fecth和push的远程地址

     git  remote set-url origin 新的地址 

  参考:https://blog.csdn.net/m0_37034294/article/details/79986198

常见错误:

1.git push -f 千万不要用这个命令,特别是多人开发过程中。

https://blog.csdn.net/u012246458/article/details/83501864

2.编码前忘记pull,导致代码冲突。只对未提交的代码有用,所以编码前,代码提交前一定要想想自己是否pull代码。

https://wenku.baidu.com/view/6a25f40653d380eb6294dd88d0d233d4b14e3f35.html

待解决:
1.git rebase master,合并master代码,明明自己提交的代码是自己的分支,为何会显示没有冲突???

2.git push后产生的不是提交,而是一个merge???

  

猜你喜欢

转载自blog.csdn.net/sinat_41723853/article/details/87866449