版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40022980/article/details/83017969
参考 : git flow工作流
目录
1、摘要
本文章对Git做深入的讲解,只引导怎样基础的使用Git完成基础的的操作。
Git版本控制器能做哪些事情:
首先这里再明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
不幸的是,Microsoft的Word、Excel格式是二进制格式,因此,版本控制系统是没法跟踪文件的改动的,如果要真正使用版本控制系统,就要以纯文本方式编写文件。
2、 Git秘钥对配置
git 生成ssh 密钥
可以使用Git Gui中的help=》show ssh key中复制,把秘钥放到代码托管平台中的就可以用啦
3、Git基础操作
如果本地没有项目,需要从远端代码仓库直接clone
3.1 git日常操作
git clone 远端代码仓库的地址
相关知识:
1、克隆某分支代码 : git clone -b 分支名 地址
1、在要操作Git的文件目录下,通过Git Bash Here进入命令行进行命令行操作。
2、先查看是否是所在的分支,不在的话需要切换到自己的分支,没有的话需要检出分支。
##分支检出
git checkout -b 分支名 origin/分支名
备注:检出,说白了就是修改HEAD指向。如果不指定commitId(也可以是分支名或tag,因为它们本质上都是指向commit),则默认会从暂存区检出指定的文件,如果暂存区为空,则该文件会回滚到最近一次的提交状态。
3、查看Git相关的状态(相当强大的命令可以经常使用查看当前的状态)
git status
4、把文件添加到索引库中,也可理解为存放到缓存区(.是指当前文件夹下的所有文件)
git add .
5、将暂存区里的改动提交到本地的版本库
git commit -m "这里是注释"
6、切换到主分支
git checkout master
7、拉取远端代码仓库中的代码,origin设置
git pull origin //origin是指远端代码仓库的git地址
相关知识:
1、拉取某分支代码 :git pull origin <远程分支名> //将远程指定分支 拉取到 本地当前分支上
8、把暂存区的代码与主分支的代码进行合并
git merge 要合并的分支名称
9、处理完合并后的代码之后,就可以把本地的代码上传到远端代码仓库啦
git push origin master
10、这里为了防止其它小伙伴此时也在提交代码,解决方案是:把远端代码仓库中的代码更新到自己的分支当中。具体操作如下:
git checkout tom //tom是自己分支的名称
git pull origin
git开发的注意事项:切记不要在master主分支上进行开发
3.2 git 版本回退
git reset --hard 目标版本号
注意: 可任意切换各版本之间的代码,但是不能强制提交,提交之后,哪个版本之后提交的版本就没了
适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。
参考:Git恢复之前版本的两种方法reset、revert(图文详解)
3.3 git 拉取远程分支到本地
# 1、新建一个空文件,文件名为hhhh
# 2、初始化
git init
# 3、自己要与origin master建立连接(git@github.com:XXXX/nothing2.git为远程仓库链接)
git remote add origin git@github.com:XXXX/nothing2.git
# 4、把远程分支拉到本地
git fetch origin dev(dev为远程仓库的分支名)
# 5、在本地创建分支dev并切换到该分支
git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
# 6、把某个分支上的内容都拉取到本地
git pull origin dev(远程分支名称)
4、Linux 编译安装git
cd git-2.11.0/
make configure
./configure --prefix=/home/pubsrv/git --with-iconv=/usr/local/libiconv
make
make install
git --version
5、免密配置
[user]
name = ******
email = ******
[credential]
helper = store
[branch "invite"]
remote = origin
merge = refs/heads/invite
6、Git常用的其它命令
git --version //查看git的版本
git config --list //查看git的配置信息
git branch // 查看分支
git branch <name> // 创建分支
git branch -a // 查看远程分支
git branch -d <name> // 删除分支
git checkout -b <name> // 创建+切换分支
git remote -v // 显示所有远程仓库名称和地址
git push origin <本地分支名>:<远程分支名> // 将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反)
git pull origin <远程分支名>:<本地分支名> // 将远程指定分支 拉取到 本地指定分支上
git push origin --delete [branchname] 删除远程分支
// 打Tag
git tag -a v0.1 -m 'Initial public release' master // v0.1是版本号
git push --tags
// 创建分支推送到远端
git checkout -b release dev // 基于dev分支新建一个release分支
git push // 推送到远程仓库,共享
// 撤销当前修改
git checkout -- 文件路径 #所有文件为 .\
代码合并
<<<<<<<head 是指你本地的分支的,head 到 =======里面的b789是您的commit的内容,=========到 >>>>68的是您下拉的内容。
Linux配置ssh自动拉取代码:
git config --global user.name "serveronline"
git config --global user.email "zhtfirst@163.com"
git config --global core.autocrlf false
git config --global core.quotepath off
git config --global gui.encoding utf-8
ssh -keygen -t rsa -C "zhtfirst@163.com"
ssh-keygen -t rsa -C "zhtfirst@163.com"
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
最后把公钥复制到 github、码云、gitlib配置公钥,安装完成
Linux 下git安装 配置ssh公钥
GitLab配置ssh key
7、常见错误
1)问题:warning: LF will be replaced by CRLF in application.yml. The file will have its origina
原因:原因是存在符号转义问题,windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示
解决办法:git config --global core.autocrlf false
其它相关知识:
常用的Git代码仓库有github、gitlab、coding、码云等
Git官网
廖雪峰讲Git
Git使用总结(包含Git Bash和Git GUI的使用)
git操作之pull拉取远程指定分支以及push推送到远程指定分支