赞
踩
工作场景一:项目的需求不断的变化,改来改去,也可能需要改回原来的代码。
工作场景二:多个合作开发,代码不好合并。
Git
---- 我们选择讲解Git。D:/aa/bb/cc
文件夹,千万不要重命名路径中的任何一个文件夹Git Bash Here
,则表示安装成功。(或者点击“Git Bash Here” --> 输入 git --version 回车,如果看到版本号,则表示安装成功)Mac用户需要额外配置一下:访达 -> 服务 -> 服务偏好设置 -> 勾选“新建位于文件夹位置的终端窗口”
Git软件在工作的时候,需要知道你是谁?所以需要设置一个用户名和邮箱。
这个用户名和邮箱,最好使用你的github账号或码云账号(如果你有账号的话),当然随便填也可以。
具体做法:
git config --global user.name "xxx"
git config --global user.email "xxx"
配置之后,可以通过下面的命令来检查是否配置成功了
# 查看所有的全局配置项
git config --list --global
# 查看单个的配置项,比如查看用户名
git config user.name
git init
然后按回车,表示执行这条命令。git add .
git commit -m '提交说明'
目的是学习,所以,随便创建一个项目文件夹,打开项目文件夹
注意:一定要在项目文件夹
,右键–>Git Bash Here。
至于项目中有没有文件无所谓。
执行下面的命令:
# 初始化,表示使用Git管理我们的项目。这个命令只需要执行一次(注意空格)
git init
git init
命令之后,会在项目文件夹中生成一个隐藏的 .git
文件夹.git
文件夹里面保存着当前项目文件的更改记录。所以这个文件夹不能删除git init
只需要执行一次查看日志的命令:
git log
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-08Ave7mo-1642227144432)(Git.assets/image-20201023143347036.png)]
git add .
之后,文件由工作区,添加到了暂存区。 暂存区保存了下次将提交的文件列表信息。git commit -m '提交说明'
之后,代码会被提交到仓库区。仓库区是 Git 中最重要的部分,代码只有提交到仓库,才会形成一次历史记录,即才会形成一个版本。# 查看文件的状态
git status
# 查看简略版信息
git status -s
初学者,只需要区分:代码是否都被提交到仓库了,即可。
新文件,只有添加到暂存区,才叫做被Git管理。否则和Git没什么关系,即使文件在项目文件夹。
# 添加当前目录的所有文件到暂存区,包括子目录
git add .
默认空文件夹,是不能添加,不能提交的
提交到仓库的文件,是暂存区中的文件。
# 提交暂存区到仓库区
git commit -m [message]
分支就是当前项目的一个副本(可以理解为把当前项目复制了一份,可以这样理解,但是要知道内部实现并非如此)。
初始化之后,默认是在master分支上进行操作的,master分支也叫做主分支。
实际开发中,正规的公司,都不允许直接在master分支上开发。需要创建分支,在分支上开发,最后将代码合并回master。
# 查看所有本地分支 git branch # 创建新分支 git branch 分支名 # 比如,创建一个叫做login的分支 git branch login # 切换分支 git checkout 分支名 # 比如,切换到login分支 git checkout login # 比如,切换到master分支 git checkout master # 创建并直接切换分支 git checkout -b 分支名
体验:
切换分支之前,必须把当前分支的代码全部提交到仓库。
特点:一个分支包含另一个分支的全部提交记录。
如果需要把dev分支的代码合并到master分支
git merge add
,即可把add分支的代码合并到master合并之后,add和master分支的代码就回一样了。
两个分支,比如是master和dev,特点是都有新的提交
也就是说,一个分支不包括另一个分支的全部提交记录
这种模式的合并,有可能会有冲突
合并方法,和前面一样
假设把dev的代码合并到master分支,切换到master git checkout master
执行 git merge dev
,表示将dev分支的代码合并到当前(master)分支
然后就会出现如下两个画面中的一种
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ejIt8NYg-1642227144451)(Git.assets/image-20200711164803953.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e3uYGF86-1642227144457)(Git.assets/image-20200711170958994.png)]
出现上述画面一,表示已经合并完成了,但是需要提交一次;
出现的框是让我们输入提交说明;
需要执行下面的操作:
i
,进入 “插入” 模式,就可以对画面中的文字进行修改了(直接输入也行)# Please enter.....
表示注释,可以不用理会Esc
键,退出 “插入” 模式:wq
”,退出这个画面,从而完成合并。(一定是英文的冒号)出现上述画面二,表示正在合并中,但是遇到冲突了;
需要在代码中解决掉冲突,然后保存代码;
最后,需要提交一次;
具体做法:
git add .
和 git commit -m '提交说明'
从而完成这个合并。码云和github都提供仓库的托管服务。
区别是码云是国内的服务器,打开速度较快;github是国外的服务器,打开速度不能保证。
码云:https://gitee.com/
github:https://github.com/
自行去这两个网站注册账号,最好使用相同的邮箱
分别到码云和github上注册账号。
如果你不会在Github上注册,没关系,上课的时候,老师演示。
我们向码云或github网站推送代码的时候,最好使用SSH的方案,这个方案需要提前配置好秘钥。下面是具体的配置方法。
任何文件夹位置,空白处右键,选择右键菜单中的 “Git Bash Here
”,执行下面的命令,可以生成SSH秘钥(包含一个公钥一个私钥)
ssh-keygen -t rsa -C "你的邮箱地址"
# 比如
ssh-keygen -t rsa -C "tangfengpo@163.com"
# 执行完这个命令之后,后面有一些询问,我们直接一路回车即可
注意,回车执行命令,然后继续回车,回车…直至生成完毕~
最后生成的秘钥在:
Windows:
C:\Users\用户名\.ssh
mac:
你的用户名那个文件夹中。 按shift+Commend+. 可以显示隐藏文件,然后就可以看到 .ssh文件夹了
找到 .ssh/id_rsa.pub
,用vscode打开,复制里面全部的内容,配置到远程仓库,做法如下:
git remote add 远程仓库地址别名 完整的远程仓库SSH地址
)git push -u origin master
)只能把本地仓库的代码推送到远程仓库;不能把工作区的、暂存区的代码推到远程。
确保你的本地仓库有内容,别推送空的本地仓库。注意是本地仓库,不是工作区。
首次使用SSH,会出现如下画面,输入 “yes”,回车即可。后面就不会再有了。
git push
命令,将这次改动推送到远程仓库。git remote -v
查看所有的远程地址。git remote remove 别名
,比如 git remote remove origin
git remote add 那里,地址复制错了,能改吗?
# 查看所有可用的源(可用的远程地址)
git remote -v
# 删除一个源
git remote remove 远程仓库地址别名
# 然后重新添加新的地址
git remote add 远程仓库地址别名 SSH地址
我电脑上有两个本地项目(仓库),能推送到一个远程仓库吗?
没人这么干!!!!!!!!两个项目放一起,会出现混乱或者覆盖的呀!!!
推送总是不成功?
git init
git add .
git commit -m "提交了初始的代码"
git remote add origin SSH地址
git push -u origin master
git add .
git commit -m "xxx"
git pull origin master
git push origin master
git clone SSH地址
,将项目克隆到本地。然后关闭黑窗口。git Bash Here
打开黑窗口,这样可以保证路径正确。git add .
git commit -m "xxx"
git pull origin master
git push origin master
git remote show 仓库别名
# 比如,查看一个叫做码云的远程仓库的分支
git remote show origin
跟踪分支就是把远程仓库的分支下载到本地
git checkout 远程分支名
# 比如有个远程分支,叫做user,把他下载到本地也叫做user
git checkout user
在项目中,创建 .gitignore
文件,它就是git的忽略文件,记录了哪些文件不被Git管理。
如果有的文件已经被Git管理了,而又想设置为忽略文件,则需要使用 git rm --cached 文件
将文件从仓库中移除才有效。
被成功忽略的文件,不会被添加到暂存区,不会被提交到本地仓库,不会被推送到远程仓库。这就是忽略的意思。
# 展示 .gitignore 的写法
# 忽略当前目录中的 test 文件夹
/test
# 忽略任何目录中的 test 文件夹
test/
# 忽略任何目录中的 png 图片
/**/*.png
Git
中基本命令的使用
git init
git add .
git commit –m "提交消息"
git status
和 git status -s
Git
分支的基本使用
git branch 查看分支
git checkout 分支名称
git checkout -b 新分支名称
git merge 分支
git push -u origin 新分支名称
SSH
访问Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。