Git
基本概念
- 版本控制软件
1)集中式:SVN、VSS、CVS
优点:管理员可以轻松掌握每个开发者的权限
缺点:中央服务器出现故障,开发无法提交更新,无法协同工作
2)分布式(主流):Git、Bazaar、Darcs
优点:Git是一个免费、开源的分布式版本控制系统,小型大型项目均适用。且断网仍可以开发,每一个开发者都是完整的项目拷贝。
- Git官网和安装
参考博客https://blog.csdn.net/weixin_42242910/article/details/136297201
linux常用指令
在安装好Git Bash后要对指定文件夹操作时,需要修改默认路径。
参考博客:https://blog.csdn.net/zzfenglin/article/details/54646541
文件操作
·创建文件
touch 文件名+后缀
注:只输入tou后点击tab键自动呼出相应指令
·删除文件
rm 文件名+后缀
· 文件内部操作
vim 文件名+后缀
按下回车进入对文件的操作界面
点击键盘i,进行对文件的插入操作,输入预期想要输入的文字、代码等
按下esc后,窗口下面的INSERT标记消失,表示已经退出插入操作,接:wq(注意这里的:是英文输入法) 表示保存并退出。接:q!表示不保存并退出。接:q表示无修改操作。
·查看文件
cat 文件名+后缀
查看文件列表
ll:查看全部文件列表,不包括隐藏文件
ll-a:查看全部文件列表,包括隐藏文件
切换目录
cd / //切换到根目录
cd ../ //切换到上一级目录 或者使用命令:cd ..
cd - //切换到上次访问的目录
cd xx(文件夹名) //切换到本目录下的名为xx的文件目录,如果目录不存在报错
cd /xxx/xx/x //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全
清屏
clear
Git基础操作指令
- 设置用户名
注意事项:签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,即具有永久性,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。
※注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。
git config --global user.name 用户名
git config --global user.email 邮箱
打开我的电脑,按下面的路径找到.gitconfig可查看相关信息
- 初始化本地库
git init
以“.”开头的文件在计算机系统中通常被称为隐藏文件。
- 查看本地库状态
我们可以使用 git status 命令来查看相关文件的状态,直接执行如下命令:
git status
会给予我们很多提示信息。
4. 添加或移除暂存区、提交本地仓库
git add 文件名 //将指定文件从工作区上传到暂存区
git add . //将该文件夹下的所有文件从工作区上传到暂存区
git rm --cached 文件名//将指定文件从暂存区返回到工作区
git commit -m"工作日志,eg:v1.0、v2.0"//将指定文件从暂存区上传到本地仓库(工作日志可双引号可单引号)
git commit -am “v1.0”//如果你觉得每次commit之前要add一下,想跳过add这一步,可以直接使用该指令。
- 修改已有文件
注:修改之后仍要git add 和git commit(更新工作日志)
- 查看日志
git log //查看当前日志
git reflog //查看历史日志
两者不同之处在于在版本切换过程中,git log 只能查看当前切换的版本,而git reflog所有版本都可以查看
- 版本切换
接上:先上传了新创建的文件(v1.0),后修改为v2.0。
版本切换即在v1.0和v2.0之间实现互相穿梭。
git reset --hard 版本号(可是完整的版本号也可以是简写)
Git分支操作
查看-创建-切换-删除分支
查看分支
git branch -v
现在只有一个主分支,*号指向谁可以理解为谁现在是控制者。
创建分支
git branch 分支名
现在的操作者仍是master,就需要切换分支
切换分支
git checkout 分支名(master、dev_1等)
git checkout -b 分支名(切换并创建分支)
在分支dev_1下,创建文件、插入内容、上传到本地仓库
若想切换到主分支master中,此时文件夹中也只显示code.txt。
删除分支
git branch -d //值得注意的是,删除该分支时,该分支不能是操作者,需要使用git checkout 分支名 切换分支
合并分支
git merge 分支名 //可以将任意分支合并到到当前分支中去
合并冲突
出现冲突的原因:如果我们在两个分支中同时修改了同一个文件,这时再合并,就可能会产生冲突。
eg:
1.我们现在有master主分支,并有一文件code.txt,内容仅有一个数字1,完成了git add 和 commit(v1)。
2.现在新建一个分支dev。
3.在dev分支(一个分支好比一个操作者)下,修改code.txt,添加一个数字2,完成add,commit(v2)。
4.在master分支下,(分支开发规范中,主分支任何时间都不能直接修改代码)修改code.txt,添加一个数字3,完成add,commit(v3)。
5.这时候在master分支下实现指令git merge 就会出现冲突。
<<<<<<< HEAD和=======之间的部分表示master分支修改的
=======和>>>>>>> dev之间的部分表示dev分支修改的
解决冲突
master分支下根据具体的实际情况在文件里自行保留和删除,将<<<<<<< HEAD
、=======
、在>>>>>>> dev
删除干净。保存并退出,接着add 和 commit(v4)。
因为在master分支下进行操作,此时dev分支未更新到最新版本(v4),只需在dev分支下,合并主分支(并不会造成冲突)。
Gitee
应用Git上传到本地仓库,仍属于个人电脑的范畴,为了更好的协作,就需要远程仓库实现对代码的git push 和 git pull。
Gitee(码云)是开源中国于2013年推出的基于Git的代码托管平台。
注册和创建远程仓库
在官网https://gitee.com/完成注册。最好是邮箱注册,非邮箱在个人-设置里添加自己的邮箱。注册成功即可新建仓库。
配置SSH公钥
1.在Git Bash中输入指令ssh-keygen -t rsa
2.命令执行完后,在 Windows个人用户目录下会生成一个 .ssh目录 ,打开后可以看到生成的私钥和公钥文件,用记事本打开公钥(文件名一般是id_rsa.pub),复制到剪切板。
3.进入gitee官网,设置-SSH公钥-粘贴-输入标题
4.验证公钥
在Git Bash中输入指令ssh -T git@gitee.com
。第一次添加时输入yes,当出现successfully即成功。
添加和推送远程仓库master
1.添加远程仓库
打开新建的仓库
2.推送远程仓库
git push origin master:master //把master(本地)推送到master(远程)
这里的origin是git默认的远程仓库名,一般不去修改。(注意要在主分支里推送,且文件必须已经完成add和commit)
3.建立关联(以便直接推送–git push)
git push --set-upstream origin master
到这就先结束吧!
不懂的可以参考佬的视频!
https://www.bilibili.com/video/BV1B8411a74a?p=1