/*在 cmd 上操作*/
1. git help // 帮助信息 常用git命令 和解释
2. git help -a // 命令目录
3. git help -g //手册
4. git help add //查看add命令的信息 或其他命令、手册
5. 按F键 - 向上翻页 ; 按B键 - 向下翻页 ; 按Q键 - 退出帮助信息
一、用户配置
1. git config --global user.name ‘guiyangyang’ // global 前两个- 设置用户名
2. git config --list //查看配置信息
3. git config help //帮助信息 出现错误时,使用帮助
4. git config --unset --global user.name // 删除配置信息
5. git config --global user.email ‘guiyy@playhudong.com’ //设置邮箱
6. git config --global color.ui true //配置颜色
7. cat ~/.gitconfig //查看配置文件
8. git config --global alias.co checkout //将checkout命令改成 co; co会等效于checkout
二、基础 >> 项目中使用git
1. git init // 项目中要使用 git ,先初始化 生成.git 文件
2. Cmd>> cd .. //返回上级 ; mkdir newfile //创建新文件夹 ; dir //查看文件目录
3. 不想用git跟踪,直接删除.git文件
4. Linux系统中, ‘.’点开头的文件默认隐藏, mac上 open .git 打开.git文件
三、git提交 >> 在项目根文件下
1. git status //查看状态,所在分支,是否有修改文件
2. git add . 或 git add index.html //准备提交所有修改文件 ,或index.html
3. git status // 查看 多次使用
4. git commit -m ‘备注信息’ // 添加提交备注信息并提交
5. git log //查看提交记录
6. git diff 或 git diff index.html //查看本地文件与git文件区别
7. git commit -am ‘备注信息’ //快捷提交等效 git add. + git commit -m ’’
四、重命名
(1)方法一:
例如:首先将本地 style.css 重命名为 theme.css
git的上的操作为:
1. git status //查看状态
2. git rm style.css //要重命名的文件
3. git add theme.css //新命名的文件
4. git status
5. git commit -m ‘把 style.css 重命名为 theme.css’ //提交修改
(2) 方法二:
1. git mv theme.css ning.css // 把theme.css 命名为 ning.css
2. git status
3. git commit -m ‘....’ //提交修改
五、文件 >> 移动、删除、恢复
- 本地 mkdir 新建文件 css
- git status // git 跟踪文件 但不会发现空目录
- git mv ning.css css/ //把ning.css移动到 css文件夹下
- git commit -m ‘描述’ //提交修改
(1)将文件夹移动至另一文件夹
- mkdir asset //新建文件夹
- git mv css asset/ //把css文件夹移至asset文件夹
- git status
- git commit -m ‘’
(2)删除文件
- git rm js/index.js // 删除多个文件使用空格并列
- git status
- git commit -m ‘’
(3)恢复文件
(3.1)删除后立即恢复
- git rm index.html // 删除,未提交
- git status
- git checkout HEAD -- index.html //恢复:head表示最近的提交; -- 当前分支; index.html 要恢复的文件
- git status
(3.2)删除并提交,再恢复
1.git rm index.html //删除
2.git commit -m ‘’ //提交
3.git status //查看状态
4.git checkout HEAD^ -- index.html //恢复:^表示恢复到上次提交的状态;^^上两次前
5.git commit -m ‘’ // 重新提交
(4)恢复历史版本
- git status;git add. ;git commit -m ‘’ // 第一次修改提交
- git status;git add. ;git commit -m ‘’ // 第二次修改提交
- git log //查看提交日志 提交的id
- git revert bb95e87 //bb95e87提交的id 恢复到id对应的版本
- 回车后 git默认打开一个编辑器 可以输入 描述信息
- 输入 :wq //冒号wq,保存
- git log //查看提交日志 最近提交
六、重置 >> 控制git头部指针
例如:项目提交了十次 id1...id10; 默认:指针指向最后一次提交
--soft:软重置,不会影响工作区和暂存区文件;
--hard:硬重置,直接将工作区和暂存区重置到指定状态;
--mixed:默认,将暂存区重置到指定状态,并且指针指向指定位置;
- git log --oneline //查看提交日志 一行一条显示;
- git reset --soft id7 //软重置到id7,指针指向id7
- git log --oneline
- git status // 查看 修改的状态 已经在暂存区了
- 提交 会覆盖id7后的提交
- 同理 --hard --mixed
- 重置到id7后,可以恢复重置到id10; git reset --hard id10
七、工作进度 >> 修改 、恢复 、删除
场景:在human.text中添加文字, 执行git stash save 后,human.text恢复到添加文字之前的状态;>>修改状态被保存起来了 不会被提交
- git stash save ‘修改了 human.text’ // 保存当前的工作进度
- git status // 提示无修改
- git stash list //查看保存的进度 stash@{0}:>>进度代号
- git stash show -p stash@{0} //对比进度与当前工作的区别
- git stash apply stash@{0} //恢复使用保存的工作进度
- git stash drop stash@{0} //删除保存的工作进度
- git stash pop stash@{0} //找回删除的进度
八、日志>>提交、查看、查找
按f键 -下翻页; 按b键 - 上翻页; 按q键 - 退出信息;
- git log // 默认 详细的 提交日志 id ,作者author ,日期 date
- git log --oneline //简单日志列表 id +描述
- git log --oneline -5 //最近5条
- git log --oneline --author=’xiaoyang’ //指定作者的提交日志
- git log --oneline --grep=’index.html’ //搜寻含有index.html的提交
- git log --oneline --before=’2018-07-05’ //查询某日期前的提交
- git log --oneline --before=’1 week’ //查询一周前的提交 或 3 days
- git log --oneline --graph //显示图形效果
- git help log //查看log相关的使用手册
- git log --oneline --decorate //显示修改
- git log --oneline --decorate --all //显示修改
九、分支
- git status // 查看当前所在分支
- git branch //查看所有分支以及当前分支
- git branch mobile-dev //创建分支
- git checkout mobile-dev //切换分支
- git diff master..mobile-dev //对比两个分支的所有区别,中间两个点
- git diff master..mobile-dev index.html //对比两个分支中文件的区别
- git merge mobile-dev // 把mobile-dev分支 合并到当前分支
- 分支合并冲突:列入两个分支中的index.html都修改了<title>master</title>、<title>mobil</title>;合并后会提示,手动去文件删除不想要的title,再执行git commit;
- git branch -m bugfix bugfix-1 //把bugfix分支重命名为bugfix-1
- git branch -d bugfix-1 //删除分支bugfix-1
- git push --set-upstream origin dev // 将本地dev分支推送远程dev分支(此时远程还没有dev分支)
十、远程操作
1. movietalk>git init //项目文件movietalk中初始化git
2.movietalk>git remote add origin https://github.com/guiyangyang/movietalk.git
// 本地推送至GitHub ; origin 远程名称
3. git remote 或 git remote -v //查看
4. git push -u origin master //推送本地分支master;-u 跟踪远程变化
5. git branch -r //查看远程分支
6. git push origin mobile-dev //推行分支,没使用-u 不会跟踪远程分支变化
十一、克隆
(1)克隆自己github上的项目:
- Desktop>git clone https://github.com/wanghao8080/movietalk.git //远程项目克隆到桌面
- Desktop>git clone https://github.com/wanghao8080/movietalk.git movie_new
//远程项目克隆到桌面的movie_new 文件夹保存
(2)克隆别人项目,当别人修改了项目时,需要命名获取更新>>
- cd movie_new; git status // 提示 当前分支(origin/master) 无更新变化(实际对方已更新)
- git fetch //获取更新 提示:获取一个更新,并放在本地origin/master上;
- git status //提示 有一个更新
- git merge origin/master //合并
- git status //提示 当前已更新一致
(3)利用别人的项目,继续自己的开发
- 点击他人github项目右上角的 Fork ;将项目保存到自己的github;
- git clone 到本地
- 进入项目目录:vim README.md //查看项目介绍 使用;编辑添加
- git add. git commit -m ‘添加了 README.md 文件’ //提交自己的修改
- git push origin master //推送至远程
(4)向别人的项目,提供自己的修改的代码
- 点击自己github上的 new pull request 进行操作;
(5)为项目添加 协作开发人员
- 点击 github 边栏的settings;>>点击collaborators>>添加
十二、给项目打标签
- git commit -m ‘hello’ // 第一次提交
- git tag v0.1 //在当前提交点上打上标签v0.1
- git tag //查看标签列表
- git show v0.1 //查看标签信息
- git commit -m ‘hola’ // 修改文件后 第二次提交
- git tag -a v0.2 -m ‘hola’ //添加标签并注释
- git checkout v0.1 //查看文件在标签v0.1时的内容,此时编辑器查看文件内容
- git log //查看提交日志
- gittag -a v0.0 id07 -m ‘zhushi’ //给id07提交打上标签
- git tag -d v0.0 //删除标签
- git push origin v0.2 或 git push --tags //远程推送标签