sudo apt-get install git ubantu下安装git
git –version 查看git的版本信息
git init 初始化并创建一个空的repository
git clone [url] 复制repo到本地
git config -–global user.name Dylan
git config –-global user.email [email protected]
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 简略显示工作区和暂存区的文件状态
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 查看别名具体信息
方法:
根据–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 倒数 第四次的 提交