一、git基础
重新下载git后
1.先配钥匙(钥匙的作用是把你电脑上面的git和github或gitab连接)
$ ssh-keygen -t rsa -C “your_email@youremail.com“ //注意啊孩子,双引号里面是你的邮箱(如果在公司你应该有自己的企业邮箱)。填你常用的就行。还有enter代表执行。
添加公钥到 Github(gitee等) 中
登录 github 账号,选中并打开 setting,选择 SSH and GPG keys,选择 New SSH key,在 Title 中填入题目,在 Key 中填入id_rsa.pub 文件中的公钥。
可用如下命令验证上述配置是否成功:
1 | ssh -T [git@github.com](mailto:git@github.com) |
2.配置user.name user.email
1 | # 配置用户名 |
3.建本地仓库
新建一个文件夹,用vscode打开该文件夹,git init,该命令执行完后会在当前目录生成一个 .git 目录
4.添加远程地址(将本地仓库与远程仓库关联起来)
1 | git remote add origin [git@github.com](mailto:git@github.com)/你的github用户名/仓库名.git |
5.新建一个txt文本,里面写点东西。我的命名为read
6.add和commit
1 | git add read.txt $ git commit -m "这是你commit的原因,写了方便你我他" |
7.push推送到你的github
1 | git push -u origin master |
另外注意事项:
生成秘钥
在windows下查看[c盘->用户->用户名->.ssh]下是否有id_rsa、id_rsa.pub文件
,如果没有需要手动生成
打开git bash,在控制台中输入以下命令: $ ssh-keygen -t rsa -C “自己邮箱”。
创建分支流程
1.先切换到主分支,然后创建本地新分支
1 | git branch <BranchName>(master) |
2.显示所有本地分支(创建完看看本地有没有该分支)
1 | git branch |
3.切换分支(既然都创建了,肯定要用这个分支,切换到该分支)
1 | git checkout <BranchName> |
4.建立远程分支
1 | git push --set-upstream origin + 刚刚创建的分支名 |
删除分支流程
1.切换分支(先切换到其他分支上)
1 | git checkout <BranchName2> |
2.删除本地分支( 需要切换到别的分支上去删除) 命令行:
1 | git branch -d <BranchName> |
3.删除远程分支(没建立远程分支就不要没必要) 命令行:
1 | git push origin --delete <BranchName> |
Git 把master的内容更新到自己分支上
1.如果分支(将此分支暂命名为feature)有修改,则先提交修改的内容,如果没有,直接跳到下一步
1 | git commit -m “这是你commit的原因,写了方便你我他” |
2.切换到master分支下
1 | git checkout master |
3.将远程的master代码pull拉取到本地
1 | git pull |
4.切换到自己分支下
1 | git checkout <BranchName> |
5.合并master到自己分支
1 | git merge master |
如果在合并的过程中,例如提示Test.java文件出现冲突了,手动修改一下这个文件,修改成自己想要内容;如果没有出现冲突,vs code上下载git history插件 ,可以对比冲突,保留自己想要的代码,没有就直接跳到7步
上方的Accept Current Change等四种选择按钮,根据情况选择保留Current Change或者Incoming Change;颜色提示很明显,<<<<<< HEAD以下绿色部分是current change,同理蓝色部分是incoming.
both是全部保留
6.添加修改的文件,将新添加的文件提交上去
1 | git add Test.java |
7.将本地分支的代码push到远程仓库对应的分支上
1 | git push origin |
测试通过后可以上线了将自己分支代码合并到master
1.需要先在,Git 把master的内容更新到自己分支上(在上面)
2.切换到master主分支 git checkout master
3.git pull一下
4.合并到master
1 | git merge (自己分支名字) |
5.在vscode 源代码管理工具或者sourecetree上对比一下自己提交的代码
5.git push 上传推送代码
git stash的使用
应用场景:某一天你正在 feature 分支开发新需求,突然产品经理跑过来说线上有bug,必须马上修复。而此时你的功能开发到一半,于是你急忙想切到 master 分支,然后你就会看到以下报错:
因为当前有文件更改了,需要提交commit保持工作区干净才能切分支
使用git stash代码就被存起来了
当你修复完线上问题,切回 feature 分支,想恢复代码也只需要:git stash apply
1 | 相关的命令 |
git reset –soft的使用
应用场景1:有时候手滑不小心把不该提交的内容 commit 了,这时想改回来,只能再 commit 一次,又多一条“黑历史”。
1 | # 恢复最近一次 commit |
reset –soft 相当于后悔药,给你重新改过的机会。对于上面的场景,就可以再次修改重新提交,保持干净的 commit 记录
二、电脑同时配置github与公司内部使用的gitlab
下载git
生成对应的gitlab和github的公秘钥 ssh-keygen -t rsa -C “你的gitlab邮箱” -f ~/.ssh/id_rsa_gitlab ssh-keygen -t rsa -C “注册 github 账户的邮箱”
这样你会在.ssh文件夹(.ssh在哪具体百度去),找到四个文件
这四个文件分别对应gitlab和github的公私钥,分别将gitlab和github的公钥配置到github和你公司的gitlab的ssh上
在.ssh目录下创建一个config文件,写入以下内容
1 | Host github.com |
测试连接是否成功
1 | ssh -T git@gitlab |
参考文章:电脑同时配置github与公司内部使用的gitlab
本地已有项目如何上传到github上
不和你多bb了,自己看:本地已有项目如何上传到github上_前端学狗的博客-CSDN博客
git 冲突相关
#预防发生冲突的方法:在每次push前git pull一下,保证本地代码都是最新的。
#冲突解决方法:
第一种冲突:在Git push的时候提示冲突了。
这种解决方法可以使用 git stash
保存本地代码,然后拉取最新的远程分支代码
1 | git fetch --all //只是下载远程内容,不做任何合并 |