文章目录
git的基础操作
安装
git官网找到适合自己操作系统的版本。
当git安装完成后,在桌面点击右键会发现新增两个git选项,这就表示我们安装完成了。
对于MAC系统来说有四个安装方法,建议使用第一个Homebrew方法安装。
安装完成可以控制台输入命令查看当前git版本
git --version
github
github是目前全球最大的代码托管网站,我们可以把自己的项目放到github上去,让它帮助我们做代码托管。其次github也是开源网站,我们可以在上面查看很多著名的项目和第三方库。
第一次进入需要注册,点击sign up注册。按照提示路径走即可。
配置用户名和邮箱
git config --global user.name '用户名'
git config --global user.email '邮箱'
git config --global --list ##查看当前配置的用户名和邮箱
仓库
仓库可以理解为管理项目的中心,我们每一个项目可以看成一个仓库,我们可以对它进行项目代码的管理和项目进度管理。别人也可以看到我们的仓库。
github上创建仓库,可以点击右上角头像下拉菜单第二项Your repositories
,进入页面后点击绿色按钮New。
点击创建仓库出现如下页面表示我们创建成功:
之后我们进行一些基础设置。首先是项目的名称,这里不能是中文,不能有大写字母,对于复杂的命名我们使用-这个符号连接。其次是项目描述,这里没有什么字符限制。然后设置仓库属性是Public还是Private:public属性任何人都可以看到仓库,我们可以指定谁能够提交代码;private即私有仓库,我们可以指定一些人才能看到这个仓库。
这些属性设置完成后,下面的其他属性可以暂时不用管,之后进行设置。
上传代码到github
创建github仓库后里面没有任何东西,我们需要上传我们的代码。
我们在桌面新建文件夹。建立我们的项目,然后打开终端输入以下命令:
git init ##初始化git仓库
git add .
git commit -m 第一次上传
输入完成后,回到我们创建github仓库的页面,复制下面板块中的最后两行命令,输入到本地终端。(我们也可以完全跟着这里面的终端命令输入)
git分为三个区:本地仓库,及本地写代码的地方;暂存区,git add .操作就是把代码提交到暂存区;远程仓库,git commit操作就是把暂存区代码提交到本地仓库;
个人开发
查找操作记录
git status
这个命令可以查看当前项目在工作区和暂存区的状态
git log
这个命令可以让我们查看所有commit的记录
git log --author = '用户名'
这个命令可以查看某个用户的commit记录(没有输出则表示没有这个人或者此人没有commit记录)
修改文件后上传
git status
修改完文件输入status命令,会显示哪些文件被改动了(红色)
git add 文件名
git status
添加到暂存区成功后再次输入status命令,被改动的文件变成绿色
git commit -m 任意文字
删除文件
手动删除
git status
本地删除某个文件后输入status命令会显示本地已经删除此文件
git add .
删除文件后,需要把本地的所有文件再次添加到暂存区
git commit -m 手动删除
命令行删除
git rm 文件名
git add .
git commit -m 命令行删除
重命名文件
手动重命名
手动重命名文件后,输入status命令会显示我们删除了一个文件,同时新增了一个文件。
git add 新文件名
git rm 旧文件名
git commit -m 手动重命名
命令行重命名
git mv 旧文件名 新文件名
移动文件到新位置
git mv 文件名 目录
输入命令后,文件就被移动到指定文件夹下
git mv 旧文件名 文件夹/新文件名
输入命令后不仅移动了位置,还进行了重命名操作
查看文件的前后改变
git log --pretty=oneline 目录/文件名
输入此命令可以看到上一次提交记录,并且可以拿到这次的提交id
git show id
拿到id后输入此命令,可以看到提交的用户、时间和改动内容
git log -p 目录/文件名
不需要ID,我们直接输入上述命令可以直接看到上次操作所作的所有变化
操作失误后还原
单个文件且改动较少
git diff
此命令可以看到本地和改动之前的不同地方,手动修改代码进行恢复
改动较多
git checkout -- 文件名
此命令可以让这个文件回到最后提交的状态
撤销追踪
当我们把文件放入暂存区后,git就会对当前文件进行追踪。这也是为什么我们进行checkout操作时可以回到之前的状态,但是一旦文件被add添加到暂存区(被追踪),我们用checkout就不会再回到上次状态了。如果我们还需要回到上次状态,就需要撤销追踪
git reset HEAD 文件名
输入上述命令后,git就会对文件取消追踪,文件从暂存区退出
项目回到指定版本
git log
git log可以查看当前提交的所有版本,产品没有发布前我们可以回退到指定版本:
git reset --hard HEAD^
此命令是回退版本,有几个^就回退几个版本
git reset --hard 版本ID
此命令是回退到指定ID的版本
文件回到指定版本
git checkout 版本ID -- 文件名
此命令会把文件回退到指定版本,项目的其余文件不会变
项目推送到远程仓库
项目仅仅是上传到本地版本库还不够,最终我们要上传到远程仓库github上才行。当我们登录github后,当前的默认分支是master,我们可以把代码推送到master上:
git push origin master
标签管理
git tag 标签名
上述命令可以给当前版本创建一个标签
git tag
上述命令查看所有标签
git tag 标签名 版本ID
上述命令会在指定ID前一个版本加标签
git tag -d 标签名
上述命令删除指定标签名
git push origin 标签名
上述命令把标签推送到指定仓库
分支管理
分支可以理解为直线,我们可以从master中剥离出一个直线进行单独开发,开发完成后把直线再合并到主线中。这样方便多人协作开发,互不影响,且影响不到主线
创建分支:
git branch 分支名
检查所有分支(当前我们所在的会被*标识):
git branch
切换分支:
git checkout 分支名
删除分支(不能删除当前所在分支):
git branch -d 分支名
git branch -D 分支名 ##强制删除
创建分支且直接切换:
git checkout -b 分支名
合并分支:
git checkout master ##合并前要切换到主分支
git merge 要合并的分支名
解决合并分支时的冲突(两个分支同时修改了同一个地方,合并时会被<<<<<<和>>>>>>包裹起来):
git merge -abort ##忽略其他分支代码,只保留当前分支代码
当然我们并不能永远忽略其他分支,这时只能进行手动修改,删除所有特殊符号,留下手动修改后的代码,然后执行:
git add .
git commit
然后会转到一个可编辑界面,我们可以写入一些文字以标识,以标识这是解决冲突的地方,输入“:wq”即可退出编辑界面,然后再次执行git commit -m即可提交到本地仓库然后push到远程仓库
多人协作开发
查看版本
git log ## 查看所有提交记录
git log --oneline ##查看简化的所有提交记录
git log --oneline --graph ## 查看版本路线
删除分支
git fetch ##拉取所有的远程仓库
git branch -av ##查看所有分支
git push origin --delete 分支名 ##删除所选分支
不同人修改不同代码
当不同的开发人员修改了不同的代码后,我们要进行merge远程仓库代码操作
git branch -av ##查看哪个分支修改了代码
git merge origin/分支 ##合并分支
不同人修改相同文件
git clone git地址 ##把项目clone下来
git branch -av ##查看所有分支,红色的是远端分支
git checkout -b 本地分支名 远端分支名 ##本地分支与远端分支做关联并切换到此分支