Git简介与常用命令
git是什么?
Git是一个开源的<b>分布式</b>版本控制系统,用于敏捷高效地处理任何或小或大的项目。
ps:果然很简介...
学习链接
git官网
pro git
廖雪峰的git教程
阮一峰的git博文
git概念
工作区
暂存区
本地仓库
远程仓库
本地分支
远程分支
暂存 git add
提交 git commit
获取 git fetch
拉取 git pull
合并 git merge
推送 git push
分支 git branch
Git 有三种状态:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
基本的 Git 工作流程如下:
- 在工作目录中修改文件。
- 暂存文件,将文件的快照放入暂存区域。
- 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 版本库。
Git 分支 - 分支开发工作流
https://my.oschina.net/nyankosama/blog/270546
https://my.oschina.net/nyankosama/blog/270581
git命令清单
- git --help 查看git帮助命令
- git --version 查看git版本信息
- git help config 查看config命令的帮助
- git config -h 查看config命令的帮助
- git config --global user.name "John Doe" 设置用户名
- git config --global user.email johndoe@example.com 设置用户邮箱
- git config --list 查看所有配置
- git init 把当前目录变成git仓库
- git status 查看仓库的状态
git clone <url>
git add <filePath>
git add -A
git commit
git commit -m 'memo'
git commit -am -m 'memo'
git push
git push origin <本地分支名>:远程分支名
git log
git reflog
git reset HEAD <file>
git remote
git remote -v
git remote add <shortname> <url>
git branch
git branch -a
git branch -vv
git checkout <>
git checkout -b
git checkout -b 本地分支名x origin/远程分支名x
git pull
git pull <远程主机名> <远程分支名>:<本地分支名>
git fetch
git merge
git tag
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(use "git reset HEAD <file>..." to unstage)
用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别
git diff 比较的是工作区和暂存区的差别
git diff --cached 比较的是暂存区和版本库的差别
git diff HEAD 可以查看工作区和版本库的差别
git checkout -- file 可以丢弃工作区的修改
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交, 使用命令git reset --hard commit_id,不过前提是没有推送到
远程库。
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,
git reset --hard HEAD^
git reset --hard HEAD~1
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
git push origin master 把本地master分支的最新修改推送至远程库
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
用git log --graph命令可以看到分支合并图。