安装最新版git可以去Git的官网,从Git官网直接下载安装程序,然后按默认选项安装即可。
git官网:https://git-scm.com/
安装完成后,当我们在文件夹中右键出现 Git Bash Here,点击Git Bash Here蹦出一个类似命令行窗口的东西
就表示安装成功了。
Git软件在工作的时候,需要知道你是谁?所以需要设置一个用户名和邮箱。
这个用户名和邮箱,最好使用你的github账号或码云账号,如果你没有,当然随便填也可以。
具体做法:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
目的是学习,所以,随便创建一个项目文件夹,打开项目文件夹
注意:一定要在项目文件夹
,右键-->Git Bash Here。
至于项目中有没有文件无所谓。
然后在命令行执行以下命令
# 初始化,表示使用Git管理我们的项目。这个命令只需要执行一次(注意空格)
git init
git init
命令之后,会在项目文件夹中生成一个隐藏的 .git
文件夹.git
文件夹里面保存着。所以这个文件夹不能删除git init
只需要执行一次可能有的朋友看不到这个文件夹,是因为设置的问题,win10系统我们只需要点击文件夹上方的查看,再把隐藏文件夹选项勾上就可以看到这个git文件夹了
初始化之后,就可以使用Git来管理你的项目了。
现在我们用在开发软件中打开我们的项目,并且创建一个index.html页面,并在里面写上几行代码
这个时候我们就可以用git来保存我们的代码,用到以下命令
git add .
git commit -m '提交说明(此次提交了什么代码,功能是什么,其实就是注释)'
提交完成之后,我们可以通过以下命令来查看提交日志
# 查看详细日志记录
git log
# 查看简略版的记录
git log --oneline
当我们在代码中进行了多次提交之后我们希望能看到的日志变得简单一点,就可以用git log --oneline
来查看
下面三个区域,是Git虚拟的区域,看不到,摸不着。
git add .
之后,文件由工作区,添加到了暂存区。 暂存区保存了下次将提交的文件列表信息。git commit -m '提交说明'
之后,代码会被提交到仓库区。仓库区是 Git 中最重要的部分,代码只有提交到仓库,才会形成一次历史记录,即才会形成一个版本。新文件,只有添加到暂存区,才叫做被Git管理。否则和Git没什么关系,即使文件在项目文件夹。
# 添加指定文件到暂存区
$ git add 文件名
# 以空格隔开可以一次 add 多个文件
$ git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
$ git add [dir] [file] [dir] [file] [file] ...
# 添加当前目录的所有文件到暂存区,包括子目录
$ git add .
注意:默认空文件夹,是不能添加,不能提交的
提交到仓库的文件,是暂存区中的文件。
# 提交暂存区到仓库区
$ git commit -m [message]
# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
# 提交工作区和暂存区自上次commit之后的变化,直接到仓库区。
# 新文件,从未被Git管理过,是不能直接提交到仓库区的
$ git commit -a -m "提交日志"
撤销操作,只能恢复暂存区或工作区,与最近一次提交的代码一致。
# 恢复暂存区的指定文件到工作区
git checkout -- [file]
# 恢复暂存区的所有文件到工作区
git checkout .
# 恢复某个commit的指定文件到暂存区和工作区
git checkout [commit版本号] [file]
# 重置暂存区的指定文件,与上一次 commit 保持一致,但工作区不变
git reset [file]
# 重置暂存区与工作区,与上一次commit保持一致。该命令后不能加文件或文件夹
git reset --hard [commit版本号]
#回退所有代码到上一个版本
git reset --hard HEAD^
#回退到上两个版本
git reset --hard HEAD^^
#回退到上10个版本
git reset --hard HEAD~10
前面黄色的字就是版本号
比如我们现在查看我们现在的代码
当我们执行了 git reset --hard 2a98904
,我们会发现我们的代码回到了刚开始创建页面的那个样式
但是当我们再想回去的时候 再次查看我们的版本号git log --oneline
的时候,我们会发现之前的版本号不见了
这个时候我们需要用到下面的命令查看所有的日志,包括之前回滚的日志:
git reflog //查看版本的详细变动
git log --reflog //查看所有日志
执行之后就会发现之前回滚的日志信息也都可以找到了,这样通过版本号我们就任然可以回到我们想要的版本
我们再次执行 git reset --hard 版本号
,就再次回到了我们想要的版本
随着git提交的次数越来越多,就会形成由各个版本连接而成的一条提交线。如下图:
由Git提交而形成的提交线,称为分支。默认的分支是主分支,叫做 master
,前面的学习,一直是在 master
分支上提交。
我们也可以创建其他分支,新创建的分支,相当于
是原分支的一个拷贝。
实际开发中
# 查看所有分支
git branch
git branch -f # 可以查看到所有分支(包括远程分支)
# 创建分支
git branch 分支名
# 比如
git branch dev
# 切换分支到dev
git checkout dev
# 切换到master分支
git checkout master
# 也可以创建并直接切换分支
git checkout -b dev
注意:切换分支之前,需要把当前分支的工作全部提交,否则不允许切换到其他分支。
实际开发中,鼓励多使用分支。
快进模式合并
B分支包含A分支的所有版本
,在合并的时候,叫做快进模式合并。两个分支合并,比如把 B 分支 合并到A分支上
git merge B
,表示把B分支的代码合并到A分支上。# 切换到A分支
git checkout A
# 把B分支的代码合并到A分支
git merge B
合并模式
两个分支合并,比比如把B分支合并到A分支上
# 切换到A分支
git checkout A
# 把B分支的代码合并到A分支
git merge B
如果有冲突,会显示如下提示:
手动打开有冲突的文件,解决冲突,保存文件。(手动解决)
再次添加(add操作)提交(commit),即可完成合并。
如果没有冲突,则显示如下提示:表示让我们输入提交说明
i
,进入插入模式。修改黄色的字为提交说明esc
,退出插入模式:wq
回车即可,这就表示完成合并之后的提交# 查看所有分支(本地分支)
git branch
# 查看所有分支(包括远程分支)
git branch -f
# 删除分支(需要先切换到其他分支,然后在执行删除)
git branch -d 分支名
# 创建并直接切换分支
git checkout -b dev
如果要切换分支,必须把当前分支的代码全部提交到本地仓库。
目前,我们的操作都是一个人开发,如果涉及到多人开发呢?大家的代码如何合并到一起呢?这个时候就需要公网上的一台服务器了,大家可以把代码提交到这台服务器上,也可以从服务器上拉取所有的代码。这个公网上的服务器就叫做远程仓库。
完全可以自己搭建一台运行Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫 GitHub 的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
实际上,除了GitHib,还有很多第三方远程仓库托管服务:
使用远程仓库有2中用法:
1: 新建一个空的远程仓库, 和已经存在的本地仓库取得关联
2: 新建一个非空的远程仓库, 克隆到本地, 克隆到本地的就是本地仓库
1.1
2.把远程仓库克隆到本地
2.1
2.2 复制一下这个远程仓库的地址
2.3 来到 本地你需要把这个仓库 放到所在地 的文件夹. 右键点击git bash here
命令: git clone 仓库地址
出现了done就说明克隆完成, 在当前文件夹就会出现一个和远程仓库名字一毛一样的一个文件夹.
3.在本地编码
出现了这个done就说明ok了.
新建远程仓库的时候,不要打上勾,
进去执行那两行命令.
完成后刷新远程仓库, 就有了之前本地提交的信息.
就是让你去新建一个readMe.md文档, 用这个文档来介绍你的项目.
在本地建了一个readme.md文件, 通过git add. git commit-m"" 提交到了本地仓库, 通过git push推送到远程.
这里就没有详细记录了
TortoiseGit 小乌龟
sourceTree
GitHubDeskTop 小紫猫/章鱼猫 Github官方推出的.
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。