ssh
git:
是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这个工具,可以把你原来提交的内容重现出来,这样对于你后来才意识到的一些错误的更改,可以进行还原。
就是你可以通过git来更加便捷的对你的代码进行操作管理
下面介绍下 widows的git'操作:
首先要先下载git这个工具:
下载地址:
https://git-scm.com/download/win
安装就是一直的不停的下一步下一步
当你安装好后i就可以使用git对你的代码进行操作了
首先你要进入你的代码目录然后右击鼠标 选择 Git Bash Here
让git在你这个目录下进行运行
当你用git打开一个目录后 先初始化git
git init
当你初始化完成后需要告诉你的git谁登陆了 才能执行
输入你的邮箱和姓名 这个可以随便输入 但是必须要输入
git config --global user.email "you@example.com"git config --global user.name "Your Name"
然后就进入了gitc的正式操作了
我门可以先查看这个目录内的所有文件
git status ---->查看当前目录下的所有文件的状态
如果还都是红色的就是没有提交的 我们需要提交 然后保存 方便我们不小心对代码搞错了以后可以很方便的回到当前的状态
查看完状态后就可以通知这些文件准备保存了 :
git add + 指定文件 ----->只让这一个文件进行准备git add . --------> 这个是把整个目录文件进行准备
这个时候你就可以
把你准备好的文件进行提交设定了:
提交的意思是你以后的现代码除了问题可以从你提交的内容中找到你当时提交的代码状态进行回滚到当时的状态
git commit -m '提交的名字' 这个是提交你的准备的代码 起的名字尽量全面方面以后的回滚
下面就是查看你所有的保存
git log ----->查看你提交的保存git reflog ------>查看你的保存 比log权限大 还可以查看你删除过的保存
git log显示的是一串id
git reflog
查看的是有几个id的
回滚: git reset --hard +保存id
回滚是当你的代码发生了崩溃你想要回到你最初的保存位置就可以回滚到以前保存的位置 根据你保存的id'来回滚
git reset --hard +要回滚的保存id 就可以回滚到你想要回滚的状态这个id就是先用log来查看的 然后你选择 你要回滚的id就可以了
当我现在有三次保存 我回滚到第一次保存的时候log就只能看到剩余的保存了 我回滚到第一次保存的 只能剩余的第一次了
然后reflog就可以看到你所有的 然后你再通过你reflog找到的保存id进而再回滚就可以再回到你的第二次 第三次保存的状态
所以回滚就是通过git reset --haed 选择你保存的状态id然后选择你回滚的状态
如果当你的代码写着写着突然之前的时候你像先把现在的保存 然后去把之前的代码调出来看看个时候怎么办呢?
你可以先把现在的代码保存在一个地方之后 然后再去查看之前的 然后再把你现在保存的调出来
git stash ------>把你当前的代码先保存再一个地方中git stash list ----->查看你所保存的所有文件git stash pop ------>取你的最近一次的保存的文件git stash clear 清空你这个保存的地方git stash apply 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) git stash drop 编号,删除指定编号的记录
当你的代码出现了bug的时候几记住一定要建立一个分区来修改你的bug不能在master这个分区上修改 这个就相当于主分区所有的正式代码都在上面运行
我们新建立一个分区然后把master中的代码拷贝过去 然后改完代码后再发送到master上就可以了,防止你在主分区上做了不该做的
查看你所有的分支:
git branch ------>查看所有的分区
创建分区
git branch +分区名
git branch +分区名 ----->创建分区git branch dev 创建一个dev分区
切换分区:
git checkout +分区名git chechout dev 切换到dev分区
删除分区:
git branch -d +分区名git branch -d dev 删除dev 分区
合并分区:
git merge +合并的分区比如你现在所在分区master 分区git merge dev 这个是把你的dev的分区和master进行合并
注意:你想把另外一个分区合并到这个分区必须要先切换到这个分区下
问题:你们在公司如果遇到要紧急修复的bug,怎么解决?
在master分支上创建一个debug分支,在debug分支上进行修复,修复完毕后再合并到master并删除debug分支; 再次切换会dev分支,进行开发....
git pull
将远程存储库中的更改合并到当前分支中
举例:拉取最新的dev分支代码
git pull orgin dev
与git pull相比,git fetch相当于是从远程获取最新版本到本地,但不会自动merge。如果需要有选择的合并git fetch是更好的选择。效果相同时git pull将更为快捷。
等价于(分叉提交):
git fetch origin dev #获取dev分支所有内容 但是不会自动合并 需要的手动合并git merge origin/dev # 合并分支内容
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些因为在merge前,我们可以查看更新情况,然后再决定是否合并
约等于(不分叉):
git fetch origin dev #先拉取git rebase origin/dev #然后切换到不分支的模式
git rebase
rebase命令可以使我们的提交历史干净、简洁!
看下面的结果图,是比较乱的
使用下面2命令解决
git fetch origin devgit rebase origin/dev
面试题:你们是否做代码review?再创建一个review的分支,由组长老大(资深的开发)来进行查看。
git rebase 和git merge 区别:
rebase本地两个分支 一个我的分支 test 一个主分支 master现在我修改的部分要合并到 master 上,可以有两种选择 merge 或者 rebase两者的最后得到的结果是一样的,但是区别是 rebase 两个分支 rebase之后只有了一个分支,如果你在dev执行的git rebase然后你之后的提交记录只显示dev分支的记录的不显示其他的分支的了而merge 则还是两个分支,只不过在merge后这个点交汇
issue
进行项目问题的讨论
打开github项目,这里有一个issue
有些公司项目,都是用issues进行提问的。比如项目中遇到什么问题,该如何解决?
而不是直接找人去提问,因为大家都很忙,忙着写代码!
当然了,这个得看公司。有些公司直接用QQ交流,或者直接当面提问!
wiki
这个就是知识库,列举一些项目中,遇到比较多的问题!避免重复提问。
一般是写接口文档,哪个接口,对应的是哪个功能,如果调用,参数是什么。新手一看,就懂了!
github:这是一个在线的代码管理保存工具,是代码管理仓库
你可以把你的在某一处写的代码用git上传到这里 然后再到另外一处取下载,方便
比如你在家开发的代码不第二天去了公司 你不想带电脑了 然后你用git保存的版本可以都上传到github然后到了公司下载以前的版本然后进行继续的编辑
一般github上的上传的都是公共的,github的私有个人文件是收费的 码云是一个可以创建1000个的免费的私有文件的 一般的公司都是运用gitlab进行自己的代码仓库的搭建命令和github的一样
github上你首先先创建用户 然后邮箱验证完后进行你的代码上传
你可以在你的本地的git后的代码的文件夹找到congi中 然后url配置用户名密码这样以后在上传就不需要密码了 但是这样太不安全了我们可以在你的git上写上你的上传用户名
因为你的GitHub上传的时候要先建立好文件夹然后你的git通过这个地址上传
找到这个地址上传 但是要加上用户名和密码
git remote add origin https://用户名:密码@ +你的项目文件夹地址
上传之前你要先选定你的代码git add .
然乎进行一个保存 git commit -m '名字'
然后才能上传
然后这是选定文件夹还需要上传
git push origin dev #选择你上传的分区的代码git push origin master
然后你到了公司第一次需要把整个代码下载下来
就需要克隆
git clone https://用户名:密码@+代码地址git branch dev #创建分区 git checkout dev 切换分区git pull origin dev 选择代码下载分区
第一次需要克隆整个代码 以后就不需要了 以后直接下载就是更新代码了
当你在同一个文件中需要第二次上传到不同的GitHub组中,你的文件内需要删除当前的url不然 你提交的还是你以前的目录下的内容 更换你当前的url
删除你以前的url可以手动取config内 也可以用命令
git remote remove orgin 然后再加上你现在的url就可以了
git remote add origin https://用户名:密码@ +你的项目文件夹地址
如果再提交代码的时候报错:
这个是在提交的时候需要强制提交:
git push -f origin +分支 如果不行再试试下面的
把当前分支代码上传到指定分支上
$ git push -u origin develop
结果是可以的。
给别人的代码进行提交bug:
先Fork 再pull request
ssh上传github:
ssh上传文件和http上传其实也就是要多设置一个密钥
http上传的时候就只需要点击你的项目右上侧来切换你的http或者ssh上传
使用ssh上传的时候你需要在你的本地git先生成一个随机字符串然后保存到你的github然后让他们两个通过这个密钥来进行连接,
在本地先安装ssh
ssh 先安装sshssh -keygen -t rsa 生成密钥
安装完毕后然后生成密钥,
然后去你的电脑本地找到你的ssh文件夹然后找到id_rsa.pub文件复制 你的密钥:
输入ssh-keygen -t rsa
命令,表示我们指定 RSA 算法生成密钥,然后敲三次回车键,期间不需要输入密码,之后就就会生成两个文件,分别为id_rsa
和id_rsa.pub
,即密钥id_rsa
和公钥id_rsa.pub
. 对于这两个文件,其都为隐藏文件,默认生成在以下目录:
- Linux 系统:
~/.ssh
- Mac 系统:
~/.ssh
- Windows 系统:
C:\Documents and Settings\username\\.ssh
- Windows 10 ThinkPad:
C:\Users\think\.ssh
这个时候我们复制ssh文件内的id_rsa.pub进行复制后然后打开github的右上侧头像部 settings
然后选择SSH and GPG keys
再选择:
标题可以不写 只是把id_rsa.pub内的 密钥放在key部分 然后就可以
再去git上验证
ssh -T git@github.com 验证本地的git和github的ssh是否连接成功
这样就可以执行我们的连接了 建立连接 然后上传了
具体操作:https://blog.csdn.net/qq_35246620/article/details/69061355?locationNum=11&fps=1
e. 代码仓库, 个人: - github - 码云 公司: - gitlab 模拟情况: 创建代码仓库:https://github.com/ayuchao/bjhot.git 家里: git remote add origin https://用户名:密码@github.com/ayuchao/bjhot.git git push origin dev git push origin master 公司: git clone https://用户名:密码@github.com/ayuchao/bjhot.git git branch dev git checkout dev git pull origin dev 写代码 git add . git commit -m 'xxx' git push origin dev 家里: git pull origin dev 写代码 git add . git commit -m 'xxx' git push origin dev 公司: git pull origin dev 写代码 git add . git commit -m 'xxx' git push origin dev
总结:
git做版本管理:本地 github是代码托管仓库:远程 1. 请书写你了解的git命令? 准备: git init git config --global user.email "you@example.com" git config --global user.name "Your Name" git remote add origin https://github.com/ayuchao/bjhot.git git remote add origin https://用户名:密码@github.com/ayuchao/bjhot.git 提交: git add . git commit -m 'xxxxx' git push origin dev 下载: git clone https://github.com/ayuchao/bjhot.git 等价于: 1. 手动创建文件夹bjhot 2. 进入文件夹 3. git init 4. git remote add origin https://用户名:密码@github.com/ayuchao/bjhot.git 5. git pull origin master git pull origin master 合并: git merge 日志回滚: git log git reflog git reset --hard asdfasdfasdfadsfasdfasdf 暂存: git stash git stash pop
协同开发:
因为协同开发者只能有5个免费的,我们建立完5个开发者后可以建立合作者也在组内的settings中
我们协同开发的时候可以建立组织或者分组:
组织可以很多人一起讨论进行开发 并且设置权限:
然后就对你的组织进行起名字:
因为组织有限制的人数,我们可以在组织内邀请协同者可以无限制:
点击settings可以对组织进行删除修改之类的操作
git init ----->初始化你的git 让你的git能在你的这个目录下运行 git