撤销命令 -- 很重要,没有就是切换到另一个分支的命令了
git checkout -- readme.txt # 放弃已经修改的文件 本次修改被放弃(代码回退)
git add readme.txt
2.文件添加到暂缓区域:git statusgit reset master readme.txt # 使用 "git reset HEAD <file>..." 撤出暂存区
git reset HEAD readme.txt # 撤销已经暂缓的文件(文件会放回工作区,已经修改的内容还会保存)
git checkout -- readme.txt # 如果要丢弃,用checkout
3.文件修改以后,没有添加到暂缓区域 查看文件是怎样的修改(差异)git diff readme.txt # 查看单前代码和仓库代码差别
git diff HEAD -- readme.txt #和指定版本比较差异
- (红色) 这个是删除的行
+(绿色) 这个是新添加的行
4.查看提交的日志git log # 日志是正序,最新修改在最上面
git log --pretty=oneline # 单行显示(便于浏览) 只有版本和commit内容
5.版本HEAD 单前版本
HEAD^ 上一个版本
HEAD^100 上100个版本
git reset --hard HEAD^ 回退到上一个版本(本地仓库退到上次提交) 查看提交记录,就会少一条提交记录
6.版本回退和撤销git reset --hard HEAD^ 回退一个版本(时光机退到前一个版本)
git log --pretty=oneline # 查看提交日志
git reflog # 查看所有的版本,可以做版本前进的时候使用 前面是版本号 (如果是pull 则不是提示信息)
git reset --hard 5123697 # 跳转到指定版本re
git log --graph # 查看git合并的路线图
7.名词工作区 (Working Directory) 电脑上面可以查看的目录
版本库 (Repository) 隐藏的目录.git文件夹
README.md 项目自诉文件
8.删除文件需要三步rm index.php # 删除工作区文件
git rm index.php # 删除仓库中的文件
git commit -m "提交" # 提交
9.远程仓库操作origin 这个是远程仓库的意思
git push -u origin master # 第一次提交,和远程仓库关联
git push origin master # 提交代码,到远程仓库,master分支上
git clone https://github.com/link1st/forum.git # 克隆仓库
10.分支git checkout -b dev # 创建分支,并切换到指定分支
git branch dev # 创建分支
git checkout dev # 切换分支
git branch # 查看所有分支,在当前分支上面会有一个*星号
git branch -va # 查看所有分支,包括远程分支
11.合并git merge dev # 将dev分支和单前分支合并
git merge origin/master # 和远程主分支合并
git branch -d dev # 合并以后可以删除分支
git branch -D dev # dev上面还有代码没有合并,采用强制删除 (新feature分支) 不推荐
git merge --no-ff -m 'merget with no-ff' dev # 禁用快速前进模式
git默认合并代码以后,删除分支,之前的提交的任何信息都找不到
12.冲突合并代码的时候回产生,
<<<<<<< HEAD # 主分支上面的代码
dev
======= # 下面是 冲突的分支上面的代码
Creating a new branch is quick AND simple.
>>>>>>> dev
13.切换到远程分支(本地没有和这个远程分支关联)
git branch -va # 查看所有分支,包括远程分支
* master 2571352 更改
remotes/origin/dev c6d60e0 修复bug
remotes/origin/master 2571352 更改
git checkout -b dev origin/dev # 新建一个本地分支,并和远程分支关联需要注意的是,dev这个本地分支一定不要存在
添加一个远程分支,在配置文件中(.git/config)就可以查看到
[branch "dev"] # 本地分支名称
remote = origin # 远端分支名称
merge = refs/heads/dev # 远端关联分支名称
14.bug分支
正在工作的时候去修复另一个bug,本地修改的文件还不能提交
git stash # 将当前修复的内容隐藏 -> 这时候去解决bug
git stash list # 查看隐藏的内容
git stash apply # 恢复隐藏的内容(解决了bug以后)
git stash drop # 删除隐藏的内容
git stash pop # 恢复隐藏的内容并删除
15.多人协作:git remote -v # 查看远程库信息
git push origin master # 推送到指定仓库
16.标签:git tag # 查看所有标签
git tag v1.0 # 添加标签
git tag v0.9 6224937 # 指定版本添加标签
git show <tagname> # 显示标签信息
git tag -a v0.1 -m "version 0.1 released" 3628164 # 创建待说明的标签 -a指定标签名,-m指定说明文字
git tag -s v0.2 -m "私钥签名标签" fec145a # -s用私钥签名一个标签
git tag -d v0.1 # 删除标签
git push origin :refs/tags/v0.9 # 删除远端标签
全局配置文件:vim ~/.gitconfig
自定义gitgit config --global color.ui true # 提示高亮显示
.gitignore 添加忽略文件
*.class
*~ # mac git会自动忽略的文件
.DS_Store # mac git会自动忽略的文件
git add index.class # 会报错,必须强制添加 git add -f [file name]
git check-ignore -v index.class # 可以检测哪条规则错误
配置:添加 --global 针对当前用户有效,如果不加则对当前仓库起作用
配置别名git config --global alias.st status
log 高亮显示,方便浏览(全局的)
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
实例:1.彻底删除某次错误的提交、并删除服务器上面的记录
git lg # 查看提交日志
git reset --hard de5afe9 # 回退到正确的版本
git commit -m '回退' # 添加信息
git push --force # 提交到服务器,强制的
本文来源于:
学习廖雪峰git网站整理的笔记