git 常用命令以及其他使用笔记
生活随笔
收集整理的这篇文章主要介绍了
git 常用命令以及其他使用笔记
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
本篇文章记录了 git 的使用过程中的笔记,大部分为常用命令行记录。内容倾向查阅使用,而非教程,详细教程文中有链接。博客会不定时持续更新。
推荐详细教程
- Git 官方资料
- Git 官方资料(中文)
- Git教程 - 廖雪峰的官方网站
名词解释与目录结构
1. .git 目录
/stage 或 /index:暂存区,具体见名称解释 /HEAD:版本指针 /config:配置文件
2. 名词解释
初始配置
效果:在"~"目录下会生成隐藏文件: .gitconfig
配置用户 git config --global user.name "Your Name" git config --global user.email "email@example.com" 查看用户 git config --global user.name git config --global user.email 复制代码仓库创建
建立本地仓库 git init 建立远程仓库(服务器使用命令) git --bare init 从远端克隆仓库(只会克隆默认分支,一般是 master) git clone https://github.com/ReactiveX/RxJava.git RxJava/ 复制代码远程库与本地交互操作
关联远程库
本地与远程库关联 git remote add origin https://github.com/hanhailong/CustomRatingBar 显示出详细的 remote 信息 git remote -v 删除添加的远程库 git remote remove origin 复制代码远程分支管理
从远程库更新到本地(不自动 merge) git fetchgit fetch origin master 从远程库更新到本地(自动 merge) git pullgit pull origin master 将本地分支推送到远程库(影响远程库,并自动关联本地分支与远程分支) git push -u 远程库名称 本地分支名称:远程库分支名称 git push -u origin master:master 将本地分支推送到远程库(影响远程库,不关联本地分支与远程分支) git push origin master:mastergit push origin master 将本地当前分支推送到远程库(影响远程库,当前分支与远程分支已关联才可使用) git push 查看远程库的分支信息 git branch -r 拉取远程分支并创建本地分支 git checkout -b 本地分支名称 远程库名称/远程库分支名称 git checkout -b dev origin/dev 删除远程分支 git push origin --delete dev 更新远程分支列表 git remote update origin --prune 复制代码远程标签管理
拉取远程标签到本地标签(指定) git fetch origin tag v1.1.0 将本地标签推送到远程库(指定) git push origin v1.1.0 将本地标签推送到远程库(所有) git push origin --tags 删除远程库标签(指定) git push origin :v1.1.0 其实不论是推送到远程,还是从远程库删除,命令均转换成以下语句,删除是源标签为空 git push origin refs/tags/源标签:refs/tags/目的标签git push origin refs/tags/v1.1.0:refs/tags/v1.1.0 复制代码备注:
影响远程库的操作:
本地仓库操作
1. 查看帮助
查看帮助 git help 复制代码2. 添加、删除、提交
添加(内容更新到暂存区) git add .git add readme.txt 删除(内容更新到暂存区,同时删除工作区文件) git rm readme.txt 提交 git commit -m "Wrote a readme file" 复制代码3. 对比
状态对比
查看状态:当前代码库与最新版本的简单对比 git statusgit status readme.txt 复制代码内容对比
工作区与暂存区对比 git diff -- readme.txt ## 有时可以省略 --,但不推荐,具体见下面的说明 工作区与版本区对比 git diff HEAD readme.txtgit diff HEAD -- readme.txt 暂存区与版本区对比 git diff --staged readme.txtgit diff --cached readme.txt 工作区与指定分支的版本区对比 git diff deve readme.txt git diff 1094a readme.txt 复制代码说明:
4. 日志
查看项目 log git log 查看某文件 log git log -- readme.txtgit log readme.txt 只查看 10 个 log git log -10 一行显示 log,只显示哈希值和提交说明 git log --pretty=onelinegit log --oneline 查看图形 Log git log --oneline --graph --abbrev-commitgit log --pretty=format:"%C(auto)%h %ad | %C(auto)%s%d %C(bold blue)<%an>" --date=short --graph --abbrev-commit 查看某文件每次提交的 Diff git log -p readme.txt 查看某文件指定提交的 Diff git show 1094a readme.txt # 1094a 是版本号,就是 commit id 复制代码说明:
5. 版本管理
版本库管理(可能会影响到工作区)
版本回滚(当前版本变为指定版本,同时暂存区被清空,不影响工作区) git reset HEAD^ 版本穿梭(当前版本变为指定版本,同时暂存区被清空,工作区的所有 modified 文件被 Revert 到指定版本) git reset --hard HEAD^git reset --hard 1094a # 1094a 是版本号,就是 commit id 查看版本管理命令历史,可用于获取所有的版本号 git reflog 复制代码说明:
版本 Revert(不影响版本库)
Revert 到暂存区(工作区与暂存区相同) git checkout .git checkout -- readme.txt ## 有时可以省略 --,但不推荐,具体见下面的说明 Revert 到指定版本库(工作区与指定版本库相同,同时暂存区被清空) git checkout HEAD^ .git checkout HEAD^ readme.txtgit checkout HEAD^ -- readme.txt ## 可以省略 -- 复制代码说明:
6. 分支管理
查看分支 git branch 查看当前分支 git symbolic-ref --short -q HEAD 创建分支(不切换分支) git branch deve 切换分支 git checkout deve 创建 + 切换分支 git checkout -b deve 删除分支 git branch -d deve 合并指定分支到当前分支(Fast forward 模式,不保留分支信息) git merge deve 合并指定分支到当前分支(推荐,禁用 Fast forward 模式,保留分支信息) git merge --no-ff -m "add merge" deve 关联分支与远程分支 git branch --set-upstream-to origin/deve deve 复制代码备注说明:
7. stash 模式
当前工作现场存储起来,用于临时切换分支 git stash 查看已存储的所有的工作现场信息 git stash list 查看工作现场文件状态信息 git stash showgit stash show --index 1 工作现场恢复(不删除工作现场) git stash apply # 不推荐,具体原因见下面说明git stash apply --index 1 删除工作现场(不推荐,具体原因见下面说明) git stash drop # 不推荐,具体原因见下面说明git stash drop --index 1 工作现场恢复(自动删除工作现场) git stash pop # 不推荐,具体原因见下面说明git stash pop --index 1 复制代码备注说明:
8. Tag 管理
- Git 官方资料
- Git 官方资料(中文)
备注说明:
译注:
- -a:取 annotated 的首字母
- -s:取 signed 的首字母
- -v:取 verify 的首字母
git 全局配置
设置[pretty] git config --global pretty.graph '%C(auto)%h %ad | %C(auto)%s%d %C(bold blue)<%an>' 设置别名:[alias] git config --global alias.logg 'log --pretty=graph --date=short --graph --abbrev-commit' 复制代码添加 Git 忽略配置
由目录下的[.gitignore]文件确定,使用规则如下:
通配符:
- / :表示目录
- * :匹配多个字符
- ? :匹配单个字符
- ! :包含单个字符的匹配列表
- [] :表示不忽略(跟踪)匹配到的文件或目录
详细说明:
- 一行一个忽略项
- 配置按从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效
- 规则【build/*】: 等同于【build】,忽略根目录或某一目录下的[build],以及其下的全部内容
- 规则【/.idea/*】: 等同于【/idea】,忽略根目录下的[.idea],以及其下的全部内容
- 以下规则,表示忽略全部内容,但是不忽略[.gitignore]文件
/*
!.gitignore
总结
以上是生活随笔为你收集整理的git 常用命令以及其他使用笔记的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 全网实时热备inotify+rsync
- 下一篇: oracle的后台进程能否杀掉