文档章节

git使用笔记

阿祥_开源中国
 阿祥_开源中国
发布于 2016/04/20 00:21
字数 1364
阅读 171
收藏 1

参考资料:

https://git-scm.com/doc

http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

https://www.andyjeffries.co.uk/25-tips-for-intermediate-git-users/

http://pinkyjie.com/2014/08/10/git-notes-part-3/

https://www.atlassian.com/git/tutorials/git-log/filtering-the-commit-history/

https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E8%A1%8D%E5%90%88

https://try.github.io/levels/1/challenges/1

 

一、git 配置相关

git config --list 列出当前所有的 git 设置

git config --global user.name "your name" -- 配置 git 的用户名, --global 指定此配置应用于全局

git config --global user.email 'your email' -- 配置 git 的邮箱, --global 指定此配置应用于全局

git config {key} -- 查看指定 key 的当前配置,如:git config user.name

 

二、git branch 相关

git branch -list 查看所有 local branch-list 可省略

git branch -r 列出所有远程分支

git branch -a 列出所有分支(本地+远程)

git branch -d [branch-name] 删除本地分支

git merge [branch] 合并指定分支到当前分支

git cherry-pick [commit] 选择一个commit,合并进当前分支

git push origin --delete [branch-name] 删除远程分支

git branch -dr [remote/branch] 删除远程分支

git checkout -b hotfix 新建并切换到 hotfix 分支

git branch --merged 当前分支已经 merge 了的分支

git branch --no-merged 当前分支没有 merge 了的分支

git branch -u origin/branch或者 git branch--set-upstream-to origin/branch 修改当前分支所对应的远程分支

git branch -vv 可查看本地分支与远程分支的对应关系,以及其他的信息

git checkout -m branch 切换到目标分支,并将当前分支与目标分支合并

 

三、git tag 相关

git tag 列出所有 tag

git tag [tag] 新建一个tag在当前commit

git tag [tag] [commit] 新建一个tag在指定commit

git tag -d [tag] 删除本地tag

git push origin :refs/tags/[tagName] 删除远程tag

git show [tag] 查看tag信息

git push [remote] [tag] 提交指定tag

git push [remote] --tags 提交所有tag

git tag -l 'v1*' 使用特定的模式查找 tag

 

四、查看信息

https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2 -- git 查看提交历史

git status 显示有变更的文件

git log -n 显示当前分支历史版本,指定 -n 限定输出的 commit 数量

git log --stat 显示commit历史,以及每次commit发生变更的文件

git diff 显示暂存区和工作区的差异

git diff --cached [file] 显示暂存区和上一个commit的差异

git diff HEAD 显示工作区与当前分支最新commit之间的差异

git log --stat 查看文件变更的概要

git log --author=username 查看指定用户提交的日志

git log --grep="Something in the message" 查找与指定字符串匹配的日志

git blame filepath 查看指定文件的每一行是谁改的

git blame -C filepath 查看指定文件的内容来源于哪个文件(当指定内容来源于被删除的文件时)

git log -p -2 查看最近两次提交文件之间的差异

 

五、代码提交

git commit -m [message] 提交暂存区到仓库区

git commit [file1] [file2] ... -m [message] 提交暂存区的指定文件到仓库区

git commit -a 提交工作区自上次commit之后的变化,直接到仓库区

git commit -v 提交时显示所有diff信息

git commit --amend -m [message] 使用一次新的commit,替代上一次提交,如果代码没有任何新变化,则用来改写上一次commit的提交信息

git commit --amend [file1] [file2] ... 重做上一次commit,并包括指定文件的新变化

git commit --amend 重做上一次 commit

git reset HEAD filepath 取消以

 

六、代码更新

git pull origin <远程分支名>:<本地分支名> 取回远程指定分支的更新,再与本地分支进行合并,如果是与当前分支合并,可省略冒号后面的部分

git push origin <本地分支名>:<远程分支名> 将本地分支的改动推送到指定的远程分支,如果省略远程分支名,则将本地分支推送到与之存在”追踪关系“的分支,如果远程分支不存在,则会被新建

git push origin :<远程分支名> 等同于 git push origin --delete <远程分支名>,删除指定远程分支

git fetch origin master 取回远程主机 origin 的所有改动,对本地代码没有影响,用于查看别人的改动

 

七、文件管理

git rm filepath git暂存区移除文件,若删除失败,加 -f (force)参数

git rm --cache filepath 仅从暂存区移除指定文件

git rm \*~ 删除所有文件名以 ~ 结尾的文件

git checkout -- filepath 将指定文件与服务器同步,还原本地修改

 

八、git 储藏

https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%82%A8%E8%97%8F%EF%BC%88Stashing%EF%BC%89

git stash 储藏当前工作目录的修改,如需自定义 stash 的名称,追加 save customName 命令

git stash list 查看储藏列表

git stash drop stashName 移除指定的储藏

git stash apply stashName --index 应用指定的储藏,指定 --index 参数将在应用储藏时,应用创建储藏时的暂存状态,应用储藏之后,当前储藏并没有被删除,需执行 drop 命令删除储藏

git stash pop  --index 应用最新的储藏,并将其从堆栈中移除

git stash clear 清除所有储藏

 

九、代码检出
非裸仓库:
git clone ssh://userName@ip/repositoryPath/.git

裸仓库:
git clone ssh://userName@ip/repositoryPath.git

© 著作权归作者所有

下一篇: 好书推荐
阿祥_开源中国
粉丝 17
博文 24
码字总数 9890
作品 0
朝阳
程序员
私信 提问

暂无文章

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部