一、前言
工作区:编辑文件都是在工作区
缓存区:git add是把工作区的修改放入缓存区
版本库:git commit是把缓存区的修改放到远程库分支
常见的提示信息
Changes not staged for commit 没有暂存以备提交的变更
Changes to be committed 即将提交的变更
Untracked files 未跟踪文件
二、全局配置
1)修改全局的用户名和邮箱:
git config --global user.name 目标用户名;
git config --global user.email 目标邮箱名;
2)修改当前的project:
git config user.name 目标用户名;
git config user.email 目标邮箱名;
三、指令整理
mkdir foldername 新建目录
touch filename 新建文件
1. 分支操作
git init 初始化一个空的版本库
git status 查看当前工作树的状态
git branch 查看分支情况
git branch name 创建一个分支
git checkout name 切换到另一个分支
git checkout -b name 创建一个分支并切换
git branch -d name 删除一个分支
git merge dev 把dev合并到当前分支
git merge --no-ff -m "commit" name 把dev合并到当前分支,并禁用Fast forward
2. 撤销修改
1)没有git add之前
git checkout -- filename 丢弃工作区的改动
git checkout -- . 丢弃工作区所有的改动
2)git add之后,但没有git commit
git reset HEAD -- filename 撤销缓存区修改,重新放回工作区
git checkout -- filename 丢弃工作区的改动
3)既git add,又git commit
git reset --hard HEAD^/HEAD~1 回退到当前版本的上一版本
git reset --hard visionnum 回退到指定的版本
3. 版本创建和回退
git add filename 添加文件到缓存区
git add . 添加所有修改文件到缓存区
git commit -m "commit" 把缓存区内容提交到当前分支
git commit -s -m "commit" 把缓存区内容提交到当前分支,同时添加Signed by签名
git commit -a -s 以文件形式编辑commit信息
git reset --hard HEAD^/HEAD~1 回退到当前版本的上一版本
git reset --hard visionnum 回退到指定的版本
4. 查看log
git log 查看版本记录
git reflog 查看版本操作记录
git log --pretty=oneline 查看简短版log
git log --pretty=oneline --graph 通过图形化查看
5. 对比文件不同
git diff name 对比文件的改变
git diff HEAD -- filename 对比工作区与HEAD版本中文件的不同
git diff HEAD HEAD^ -- filename 对比HEAD和HEAD^版本中文件的不同
6. 删除文件
rm filename 删除目录中的文件
git rm filename 从版本库永远删除文件
7. Bug管理
git stash 隐藏当前工作现场
git stash list 查看保存的工作现场
git stash pop 恢复保存的工作现场
四、GitHub使用
git clone cloneaddr 从远程库克隆到本地
git clone -b branchname cloneaddr 从远程库克隆指定分支到本地
git push origin name 把本地分支推送到远程库对应分支
eg:
git push origin HEAD:refs/for/FP_BISTO
git branch --set-upstream-to=origin/name name 将本地分支跟踪服务器对应分支
git push
git pull origin name 从远程分支上拉取代码
git push -u origin master 把本地分支推送到远程库对应分支
因为远程库是空的,所以我们在第一次推送 master 分支时,要加上 -u 参数,Git不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令。
这里有一个大神整理的链接~~