个人git操作练习
1.进入到工作目录中,初始化一个代码仓库 使用命令:git init 使用 cd 到 文件夹路径 /Users/h/Desktop/文件夹 下 注意:可以用 touch xx.m 建立一个xcode .m 文件 其他类型文件一样 然后在文件路径下建立一个 testGit 文件 cd到该目录下 /Users/用户名/Desktop/文件夹/testGit 在该目录下 初始化一个代码仓库 命令行: git init 显示: empty Git repository in /Users/h/Desktop/文件夹/testGit/.git/ 结果在目录下看不到 实际已经建立。显示该文件(即显示apple下面的隐藏文件): defaults write com.apple.finder AppleShowAllFiles -bool true 然后重新打开 finder文件夹 command + option + esc 点击 finder 重新开启;2.给git仓库配置一个用户名和邮箱
命令:git config user.name "under" :git config user.email "XXX@163.com" 如何让配置的用户名和邮箱发挥作用 在隐藏后显示的git文件夹找到 hooks 文件里面有一些钩子程序 (即:钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。) 脚本 一般不建议使用编写钩子程序 影响脚本效率 实现的效果就是git有修改就给邮箱发邮件 3.初始化代码 命令:pwd 可以看到cd所在文件夹的位置 命令:touch main.m 创建一个.m文件代码 命令:git add main.m 添加代码命令:git status (查看添加代码位置和状态)
显示:new file: main.m 处于代码的commit 状态命令:touch Person.m
命令:git status 显示:new file: main.m 绿色 (代码区域) Person.m 红色 前缀 to include in what will be committed 即在(工作区域) 4.提交到本地仓库 git commit -m "代码提交的标示" 命令:git commit -m "初始化代码" 现在只能提交 main.m 显示:[master (root-commit) XXXXX] 代码初始化 1 file changed, 0 insertions(+), 0 deletions(-) master 是分支 1个文件被改变提交了命令:git status 看不到绿色文件
文件夹git 就是一个代码仓库和管理者 代码已经被编译在里面 它所在的文件夹就是工作目录(暂缓区) 命令:git add . 代表添加所有的文件到暂缓区 这样用git status的话所有文件都变成绿色4.修改文件
修改文件夹里面任意一个代码文件 这里用main.m文件 命令:git status 显示:main.m文件变成红色 表示没有添加到暂缓区。 命令: git add . 命令: git status 显示: main.m文件变成绿色命令:git commit -m "修改了main.m文件" (提交到仓库+修改日志)
命令:git status 显示没有文件了 5.给git命令起别名 git config alias.st "status" 命令:git config alias.st "status" (意味着st将来就是 status 命令,注意:空格) 这样git st 相当于 git status 命令:git config alias.cm "commit -m" 简写commit -m 这样git cm " " 相当于 git commit -m " "6.查看历史版本
命令:git log 显示 commit : ......(版本号) Auther :......(用户+邮箱) Date :...... (时间) 提交日志 命令:q 退出查看历史版本 另一种命令:git reflog 显示简洁版的版本 而且 7.版本回退 修改main.m里面的代码记住版本号 这边可以直接用命令行 open main.m 命令:git add main.m 命令:git cm "版本1" 命令:git st 查看修改main.m 版本2
命令:git add main.m 命令:git cm "版本2" 命令:git st 查看修改main.m 版本3
命令:git add main.m 命令:git cm "版本3" 命令:git st 查看 命令:git reflog 显示: ..... HEAD@{0}: commit: 版本3 ..... 前七位版本号 ..... HEAD@{1}: commit: 版本2 ..... HEAD@{2}: commit: 版本1 回退命令 命令:git reset --hard HEAD (回退当前版本) 就是说工作区 有代码修改 丢弃代码修改 相当于svn里面reset HEAD 主分支 --hard强制执行 git reset --hard HEAD ^ (回退到上一个版本) git reset --hard HEAD ^^(回退到上两个版本) git reset --hard HEAD ~100(回退到上100版本) git reset --hard .... (回退到指定版本 ..... 前七位版本号)命令:git reflog 查看版本
发现多了一个版本 ..... HEAD@{0}: reset : moving to ..... 回退的版本号前7位 ..... HEAD@{1}: commit: 版本3 ..... ..... HEAD@{2}: commit: 版本2 ..... HEAD@{3}: commit: 版本1 说明前面提交的版本还在 还可以回退到以前修改过的版本 相当于 复制要回退到版本的代码生成一个新的版本- --global 的作用配置全局的 git参数 包括代码 命令:git config --global user.name "XXX" 项目下面.git 文件里面有一个config文件 即配置文件 如:[user] email [alias] st = status cm = commit -m 等等自己设置的命令 这配置文件这是在当前这个项目有效,其他项目找不到 git status 的简写方法:git st 加入--global即其他项目,就可以使用了 命令: git config --global alias.st "status" 全局的config 在 /Users/h/.gitconflg里面查看