参考网址: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 "xxx.@yyy.zzz" 后面是自己的邮箱(提示输入密码,不用的话三次回车),本地ssh -key配置完成;
配置gitLab上的ssh -key
1)进入~路径下,必须保证当前路径在~路径下
在git命令行敲击 ssh-keygen -t rsa -C "xxx.@yyy.zzz" //建议写自己真实有效的邮箱地址。注意:在敲代码是不要将双引号也敲击进去。
然后命令行会出现如下代码:
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 xxxxxx@yy.com
*本机已完成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 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.创建仓库(公开)
步骤:
点击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 git@github.com: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
11.远程强制覆盖本地
git fetch --all
git reset --hard origin/master
git pull
参考:https://blog.csdn.net/sinat_36184075/article/details/80115000
12.将不想提交的代码保存在暂存区(先add后再stash,直接add不会将新增的文件保存起来)
git stash save ''提交描述"
git list 查看所有stash的代码
git stash pop 版本 恢复此代码,默认恢复最新代码
git stash pop stash@{id} 恢复指定代码
会将所有未提交的代码保存在暂存区,即将上一次push或者pull后与当前修改过的代码保存在暂存区,之后所有代码恢复至上次push或者pull后的状态,不过对于新增的类,不会恢复至之前状态。并且此保存的不会随代码提交而提交。
参考:https://www.cnblogs.com/Beenterprising/p/9584702.html
13.tig的使用:目前不太清楚,只知道使用前需要先安装:sudo apt-get install tig
扩展:
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???
3.git push master和git push origin master的区别???
4. git reset --hard origin/master 嘛意思???
总之,有一个良好的编码习惯很重要。多人开发,编码前先pull一把,提交记得写merge Request,就酱紫。