- GIT安装
sudo apt-get install git ubantu下安装git
- 查看GIT版本
git –version 查看git的版本信息
- 初始化并且创建一个空的REPO
git init 初始化并创建一个空的repository
git clone [url] 复制repo到本地
- GIT的配置 (cat ~/.gitconfig )
git config -–global user.name Dylan
git config –-global user.email Andy.dong@163.com
git config --global color.ui true 开启颜色显示
git config --global alias.unstage “reset HEAD” 设置别名
git unstage ===== git reset HEAD
- 查看配置信息
git config –list 列出已经配置了的配置信息
- 添加文件和提交文件
git add file 将工作区文件添加到暂存区
git commit –m “message” 将暂存区文件添加到版本库
git commit –am “message” 直接将工作区文件添加到版本库
git commit –amend 修改版本库并提交(需先暂存)
- 查看版本库信息
git status 查看工作区和暂存区的文件状态
git status –s 简略显示工作区和暂存区的文件状态
- 设置暂存时的忽略文件
- 在所处目录下创建 .gitignore文件,
- 在文件中添加需要忽略文件的文件名,
- 可以添加忽略该文件本身,(echo “.gitignore “ >> .gitignore)
- 可以使用 git status --ignored查看忽略文件。
- GIT当然提供了方法,只需在主目录下建立".gitignore"文件,
- 此文件有如下规则:
1).所有以#开头的行会被忽略
2).可以使用glob模式匹配
3).匹配模式后跟反斜杠(/)表示要忽略的是目录
4).如果不要忽略某模式的文件在模式前加"!"
比如:
① # 此为注释 – 将被 Git 忽略
② *.a # 忽略所有 .a 结尾的文件
③ !lib.a # 但 lib.a 除外
④ /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
⑤ build/ # 忽略 build/ 目录下的所有文件
⑥doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
- 查看文件的具体操作变化
git diff 查看工作区和暂存区的变化
git diff HEAD 查看工作区和版本库的区别
git diff –catched 查看暂存区和版本库的变化
git diff –stat HEAD 简略查看工作区与版本库的变化
- 撤销与恢复
git reset 将版本库的内容直接覆盖暂存区
git checkout - -file 将暂存区file文件内容覆盖工作区
git checkout HEAD 将版本库的内容直接覆盖工作区
- 删除与重命名
git rm file 删除文件并且无法提交到版本库
git clean -df 删除工作区未添加到暂存区的文件和目录
git rm –cached file 保留工作区file,删除版本库file
git mv oldfile newfile 更改文件名
- 临时保存当前目录下的文件
git stash 将当前工作进度存入临时的栈中
git stash list 列出存入栈中的工作进度
git stash pop stash@{n} 弹出保存的工作进度n
- 查看版本库的提交日志
git log 查看版本库的提交日志
git log --oneline --graph 简略的查看版本库日志
- 查看分支的类型及大小
git cat-file -t branch 查看branch所属的类型
git cat-file -p branch 查看branch的基本信息
git cat-file -p sha(哈希值) 查寻哈希所对应文件内容
15. 查看版本库中的所有文件
git ls-files 查看当前版本库所有文件
git ls-files --stage 查看版本库文件以及显示哈希值
16. 查看分支的哈希值
git rev-parse HEAD 查看HEAD指向的哈希值
git rev-parse HEAD~ 查看HEAD指向的下一个的哈希值
git rev-oarse HEAD~^{tree} 查看HEAD指向的下一个的树的哈希值
git rev-parse HEAD~:hy.c 查看HEAD间接指向的hy.c文件的哈希值
gti show HEAD~:hy.c 查看hy.c文件的内容
17. 创建和删除分支结构
git branch 列出所有的分支结构
git branch newbranch 创建分支结构newbranch
git branch -d branch 删除已经合并过的分支结构branch
git branch -D branch 删除未合并过的分支结构branch
git checkout branch 切换到branch分支结构中去
git checkout -b newbranch 创建并切换到newbranch分支结构
git branch–m oldbranch newbranch 更改分支结构git名
18. 合并分支结构
git merge branch 将branch分支合并到当前分支上
git rebase branch 合并分支branch到当前分支上
19. 分享和更新项目
git remote 列出远端仓库别名
git remote -v 列出远端仓库别名的URL
git remote add [alias] [URL] 为项目添加新远端仓库
git remote rm [alias] 删除远端仓库别名
20. 从远端仓库下载和推送到远端仓库
git fetch [alias] 从远端仓库下载到本地,但不合并
git pull [alias] 从远端仓库下载到本地,并且合并
git push [alias]/[branch] 从本地推送数据到远端仓库
21. 设置版本库别名
git tag 查看版本库的别名
git tag –a alias –m “message” 设置版本库的别名
git tag –d alias 删除版本库的别名
git log --oneline --graph --decorate 查看别名具体信息
git 删除 错误 提交的 commit
方法:
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset --soft:回退到某个版本,只回退了commit的信息(撤销HEAD指向的git commit),不会恢复到index file一级。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!(返回到HEAD指向的,工作区 暂存区 版本库都返回)
git reset HEAD -- filename : 取消 对filename 文件的错误git add 操作。
HEAD 最近一个提交
HEAD^ 上一次提交
HEAD^ ^ 上一次的 上一次的提交(倒数第三次)
HEAD^^^ 倒数 第四次的 提交
----------------------
HEAD~0 最近一个提交
HEAD~1 上一次提交
HEAD^2 上一次的 上一次的提交(倒数第三次)
HEAD^3 倒数 第四次的 提交