Git 简介
- 是什么
- Git 也是一个版本控制管理软件
- 有什么用,可以解决什么问题
- 保存历史记录
- 多人协作
- 有了 SVN,为啥要学 Git
- Git 火
- Git 相对于 SVN 来说,更强大,用户也非常多
- 怎么用
- Git 的诞生
git-bash 常用命令
- pwd
- ls
- ls -a
- cd
- mkdir
- clear
- rmdir
- 只能删除空目录
- rm
- rm 文件名
- rm -rf 目录名
- 注:很强大,可以删除非空目录,以及一些比较顽固的文件或者目录
初始化配置
# 设置用户名
git config --global user.name "你的名字"
# 配置用户邮箱
git config --global user.email "你的常用邮箱"
# 设置 gitk 图形查看工具中文显示默认编码(防止乱码)
git config --global gui.encoding utf-8
# 查看配置列表项
git config --list
基本使用
git init
- 初始化一个 Git 仓库
git status
- 查看当前工作区、暂存区、本地仓库的状态
git add
git commit
- 示例:
git commit -m "日志说明" --author="操作者姓名 <邮箱>"
- 执行
git commit
的时候,Git 会要求具有用户名和邮箱的参数选项 - 可以通过
git config
命令配置一下用户名和邮箱
- 示例:
git log
gitk
总结:操作 Git 的基本工作流程就是先修改文件,然后执行 git add
命令。
git add
命令会把文件加入到暂存区,接着就可以执行 git commit
命令,将文件存入文档库,
从而形成一次历史记录。
工作区、暂存区、本地仓库
版本回退
# git rm --cached <file>
# 恢复暂存区的指定文件到工作区
$ git checkout [file]
# 恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit] [file]
# 恢复暂存区的所有文件到工作区
$ git checkout .
# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]
# 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard
# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
$ git reset [commit]
# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]
# 重置当前HEAD为指定commit,但保持暂存区和工作区不变
$ git reset --keep [commit]
# 新建一个commit,用来撤销指定commit
# 后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert [commit]
# 暂时将未提交的变化移除,稍后再移入
$ git stash
$ git stash pop
远程同步
- remote
- push
- pull
在线仓库托管服务
一个不知道 github、stackoverflow 的程序员想想都是可悲的
- github
- 码云
- coding
Github
Github 就是程序员的新浪微博
它可以让你使用社交化的方式进行编程协作、
- 点赞
- 评论
- 转发
- etc.
主要作用:可以免费在线托管你的仓库
可以实现多人协作
提供了一个可视化界面(Web Page)让你能直观清晰的了解你的项目源代码
基本使用
- 注册
- 登陆
- 创建远程仓库
- 通过
git clone
命令下载远程仓库到本地- git clone 会自动帮你把远程仓库下载到本地,不需要再去 git init 了
- 通过 clone 下来的仓库,git 有一个远程仓库地址列表,git 默认会把你 clone 的地址起一个别名:origin
- 然后你执行 push 的时候实际上就是将本地的版本提交到 origin 上
- 在本地进行操作,通过
git commit
形成历史记录 - 通过
git push
将本地仓库中的历史记录提交到远程仓库
本地已有仓库,需要提交到线上
如果是 git init
出来的仓库,进行 push
提交的时候就不知道要往哪里 push。
所以,这里通过 remote
相关命令进行设置:
# 查看所有的远程仓库信息
git remote show
# 根据别名查看指定的远程仓库信息
git remote show 远程仓库地址别名
# 添加远程仓库信息
git remote add 别名 远程仓库地址
通过上面的 git remote add
添加完远程仓库地址信息之后,还不能直接 git push
,必须在每一次
push
的时候加上 git push 仓库地址别名 master
就可以提交了。
如果想要省略 git push
后面需要指定的 仓库地址别名 master
可以通过下面的命令修改:
git push --set-upstream heima master
这样就可以直接使用 git pish
进行提交而不需要指定 heima master
了