git的使用流程
git 码云 仓库通信说明
在写 git 命令之前先来描述一下 git 和码云之间的通信。
1. 首先 在码云仓库中新建自己的仓库,设置相关的配置
2. 执行 git clone url(远程仓库地址) 将远程仓库下载到本地。
进入项目目录,目录下有.git文件,在这个目录下写自己的项目文件。
3. 如果你已经在本地使用了git管理了你的项目,现在需要将本地的项目上传到码云仓库。
你同样需要在码云上新建项目,将项目清空即可。
然后在本地添加远程仓库地址,就可以将已经存在的git项目推到码云上了,注意步骤,否则是推送到远程仓库
4. 关于密码权限问题
你需要使用码云上的 SSH 链接,不要使用 https 链接,然后按照链接步骤
[https://gitee.com/help/articles/4191#article-header0][1] 配置即可。
git的安装
在git官网上下载 git 安装文件,下载所需版本,一路点击下一步即可,也可以自行设置选项。
安装完成以后。双击 Git Bash 打开命令面板。
执行 git version 查看版本号,能正常运行并输出版本号,说明 git 安装成功。
如果在 cmd 中无法启用 git 命令,需要配置环境变量。配置的过程如下:
在我的电脑中右击,
选择属性选项 ->高级系统设置 -> 高级选项卡 -> 点击环境变量按钮 ->
在系统变量中找到 Path 双击将 git 的安装目录复制进去即可.
这样就能在 cmd 中启用 git 指令了,如有疑问自己百度一下配置好即可。
git 指令的使用
使用前先了解一下 dos 和 linux 的简单命令( 可以先略过 )
cd 命令
cd .. 返回上一级目录
cd d: 进入 d 盘(指定的盘符)
cd / 返回根目录
cd <folderName> 进入指定的目录
ls命令
ls 列出当前目录下所有的文件( 不含隐藏文件 )
ls -lat 列出隐藏文件目录详细信息
ls -a 列出目录下所有的目录和文件
mkdir 命令
mkdir <dirname> 创建新目录(在当前目录下)
touch 命令
touch <fileName> 创建新文件
cat 命令
cat <fileName> 显示这个文件
vi 命令
vi <fileName> 编辑文件
在英文状态下输入 i,进入插入模式
编辑文本后,按 esc 键退出编辑
按 :wq 保存并退出,回到命令面板
git 查看文件状态
1.git status : 查看当前状态,看提示的颜色和标志,区分文件需要的操作。
2.git status -s : git status 简化 注意前面的字母标志,分为2列,
第一列是对staging区域而言,第二列是对working目录而言。同时注意字母的颜色,区分当前文件的状态。
git 跟踪文件
1.git add : 将文件添加到暂存区,非常重要的一个操作,这样就可以实时的对你的文件进行跟踪了。
2.git add filename : 将filename文件添加到暂存区
3.git add . : 将所有文件添加到暂存区
4.git add -A : 添加所有改动文件到暂存区( 不常用 )
5.git add -u : 添加有改动且已追踪的文件( 不常用 )
git 文件比较
1.git diff : 比较文件,默认是工作区和暂存区文件比较,不加参数是所有文件
2.git diff --cached : 暂存区和本地仓库比较
3.git diff head : 工作区和本地仓库比较
4.git diff filename : 工作区和暂存区 filename 文件的对比,可以加路径。
5.git diff branchName filename : 比较当前分支和 branchName 分支的 filename 的文件
6.git diff romoteName/branchName filename : 比较远程主机 romoteName 的 branchName 分支的filename文件比较。
即当前分支的某个文件和远程主机的某个分支的代码比较。
注意:如果不传filename,比较所有文件,传filename时注意文件路径。
在执行add操作是,为了安全先执行diff命令。在 git diff 中存在状态字
第一列 M 表示:版本库和处理中间状态有差异( 版本库与暂存区有差异 )
第二列 M 表示:工作区和暂存区文件有差异( 当前文件指 )
A: 你本地新增的文件(服务器上没有)
C: 文件的一个新拷贝
D: 你本地删除的文件(服务器上还在)
R: 文件名被修改了
T: 文件的类型被修改了
U: 文件没有被合并(你需要完成合并才能进行提交)
X: 未知状态(很可能是遇到git的bug了,你可以向git提交bug report)
详情请查阅相关资料,不过意义不大,用一段时间就知道了。
git 查看日志
1.git log : 列出提交的详细信息
2.git shortlog : git log 简化
3.git log -p : 查看历次的 log 信息及更改情况
4.git log -p -number : 查看距现在最近的 number 次的 提交的信息及更改情况
5.git log --stat -number : 查看log显示文件修改情况
6.git log --pretty=oneline : 查看提交的版本 ID
7.git reflog : 查看所有的操作信息。
git log --stat -number
很有用的一个命令,可以迅速查找到你上次提交的具体的文件信息,只是展示那些文件被修改过。
git 提交
1.git commit -m "信息" : 提交到本地仓库
2.git commit filename -m "信息" : 提交指定文件,可以是文件目录,多文件用空格隔开
3.git commit --amend -m "信息" : 合并提交
4.git commit -a -m "信息" : 添加到暂存区并提交到本地仓库(不建议使用)
git 回退
1.git checkout .(<fileanme>|/dirname) : 撤销修改,不建议使用,会造成修改的文件无法找回。(从工作区撤回)
2.git reset HEAD <filename> : 从暂存区撤销指定文件
3.git reset : 从暂存区撤销所有未提交的文件
4.git reset --hard HEAD : 硬回退到最后一次提交(硬)
5.git reset --hard HEAD^ : 最后一次提交的前一个提交(硬)
6.git reset --hard HEAD~number : 回退到前 number 版本(硬)
7.git reset --hard versionNumber : 回到指定的版本,通过 versionNumber 版本号(硬)
8.git reset --hard master@{num} : 回到指定的版本
--hard : 直接回退到工作区
--soft : 从仓库恢复,本次修改的内容依然存在,只是处于为提交状态
后面 5 条不知道为什么这样显示,很无奈。
git 分支
说道分支,特别强调,在git使用过程中,一定要知道所有的操作都是针对当前分支的。所以在查看git文档时要深刻理解你当前处在
哪个分支,想在当前分支上做哪些操作。 这一点对于git的使用至关重要,几乎所有的指令都直接和间接与分支关联。
1.git branch branchName : 创建一个名为 branchName 的分支
2.git checkout branchName : 从当前分支切换到 branchName 分支
3.git checkout -b branchName : 创建并切换分支
4.git checkout -b branchName remoteName/branchName 创建一个干净的分支(以远程分支为基础,创建新的本地分支,如果clone后,需要切换到某个分支,而本地并没有这个分支。可以使用该命令)
5.git branch -d branchName : 删除分支,未合并分支不能被删除,使用 -D 强制删除分支
6.git branch : 列出本地分支
7.git branch -a/-r : 列出所有分支
8.git branch -v : 查看分支的最后修改(分支最后一次提交的版本信息)
9.git branch -l : 列出所有的本地分支
10.git reflog show branchName : 列出指定分支的版本记录列表
11.git reflog show --date=iso branchName : 查看分支创建的时间
12.git merge branchName : 将指定的 branchName 分支合并到当前分支。
git 中断 stash
起名中断,自己这么理解,该方法很有用。特别是在开发新版本的时候,正式服务器上有一个紧急的,
需要修复的 bug, 这个时候怎么办,又不想提交。于是你可以执行这个命令。保持现场,等你回来。
1.git stash : 中断,保持现场。(用编号标记不同的中断)
2.git stash pop : 取出中断,恢复最后一次中断时的现场。
3.git stash list : 查看所有的中断信息
4.git stash apply stash@{1} : 取出指定的中断
5.git stash clear : 清除所有中断
举一个例子,比如你在dev分支正在开发一个功能,这时master分支有一个亟待解决的bug。
此时dev分支的功能并没有开发完,现在并不想执行 commit,提交。这时你执行 git stash,中断。
然后切换到mater分支上修复bug,修复完成后切换到 dev 分支,
然后将中断取出,执行git stash pop 就可以继续你的开发工作了。
git 其他
1.git log --author="author": 查看 author 提交的记录
2.git status: 查看状态、待 push 的 commit
3.git cherry -v: 查看未提交的 commit
4.git log master ^origin/master: 查看未提交的 commit