Git 使用教程
安装
下载地址 http://git-scm.com/downloads
官方文档 https://git-scm.com/book/zh/v2
命令文档 https://git-scm.com/docs
概念
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
暂存区
.git目录下的index文件, 暂存区会记录git add添加文件的相关信息(文件名、大小、timestamp...),不保存文件实体, 通过id指向每个文件实体。可以使用git status查看暂存区的状态。暂存区标记了你当前工作区中,哪些内容是被git管理的。 当你完成某个需求或功能后需要提交到远程仓库,那么第一步就是通过git add先提交到暂存区,被git管理。
本地仓库
保存了对象被提交 过的各个版本,比起工作区和暂存区的内容,它要更旧一些。 git commit后同步index的目录树到本地仓库,方便从下一步通过git push同步本地仓库与远程仓库的同步。
基础命令
初始化
git init [dir]
该命令将创建一个名为 .git 的(隐藏)子目录例:
cd code/; git init 或者
git init code
添加文件到暂存区
git add <filename>/<dir>
例: 添加当前目录下所有文件
git add .
添加指定文件git add README.md
提交文件到本地仓库
git commit -m '说明'
例:
git commit -m '2019-04-18初始化项目'
添加远程仓库
git remote add <shortname> <url>
例:
git remote add origin https://github.com/xxx/xxxx.git
推送到远程仓库
git push -u <shortname>/<url> <分支>
例:
git push -u origin master
克隆远程仓库到本地
git clone <url>
例:
git clone https://github.com/apache/flink.git
检查当前文件状态
git status
当输出一下内容时: On branch master nothing to commit, working directory clean 这说明你现在的工作目录相当干净。所有已跟踪文件在上次提交后都未被更改过 当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列出来 该命令还显示了当前所在分支,并告诉你这个分支同远程服务器上对应的分支没有偏离
查看用户名&邮箱
git config user.name
git config user.email
修改用户名密码
git config --global user.name "Your Name"
执行后,push时重新输一次密码即可
修改和提交 | 分支与标签 | ||
---|---|---|---|
git status |
查看状态 | git branch |
显示本地所有分支 |
git diff |
查看变更内容 | git checkout <branch/tag> |
切换到指定分支或标签 |
git add . |
跟踪当前目录改动过的文件 | git branch <new-branch> |
创建新分支 |
git add <file> |
跟踪指定文件 | git branch -d <branch> |
删除本地分支 |
git mv <old> <new> |
重命名 | git tag |
列出本地所有标签 |
git rm <file> |
删除文件 | git tag <tag-name> |
基于最新提交创建标签 |
git rm -r --cached . |
停止跟踪文件并删除 | git tag -d <tag-name> |
删除标签 |
git commit -m "message" |
提交更新过的文件 | git merge <branch> |
合并分支到当前分支 |
git commit --amend |
修改最后一次提交 | git rebase <branch> |
衍合指定分支到当前分支 |
查看历史&撤销 | 远程操作 | ||
---|---|---|---|
git log |
查看提交历史 | git remote -v |
查看原创版本库信息 |
git log -p <file> |
查看指定文件提交历史 | git remote show <remote> |
查看指定远程版本库 |
git blame <file> |
列出指定文件提交历史 | git remote add <remote> <url> |
添加远程版本库 |
git reset -hard HEAD |
撤销未提交的修改内容 | git fetch <remote> |
从远程库获取代码 |
git checkout HEAD <file> |
撤销指定文件未提交的修改内容 | git pull <remote> <branch> |
下载代码及快速合并 |
git revert <commit> |
撤销指定的提交 | git push <remote> <branch> |
上传代码及快速合并 |
取消commit git reset --soft Head
个人微信,有什么建议、意见或补充,欢迎及时沟通!!!(添加时注明“博客园”,谢谢)