文档章节

git 学习笔记

老王哥哥
 老王哥哥
发布于 2017/09/05 20:17
字数 1296
阅读 1
收藏 0
Git

git config --global user.name "Your Name"

git config --global user.email "email@example.com"

git init用来把目录变成git可以管理的仓库

ls -ah可以看见隐藏文件

git add <file> 用来把文件添加到仓库,可一次添加多个文件

git commit -m "描述" 用来把文件提交到仓库

git status用来查看仓库的当前状态

git checkout -b feature-hu develop    # 从develop分支新建并检出feature分支
# 这里可以进行一些功能开发,并不断的add和commit
        # 切换回develop分支
git pull origin develop    # 更新远端代码,看develop分支是否有更新(无更新)
git checkout feature-hu    # 切换回feature分支
git rebase develop    # 合并develop分支到feature分支,并解决冲突(无冲突)
git checkout develop    # 切换回develop分支
git merge --no-ff feature-hu    # 合并feature分支到develop分支
git push origin develop   # 推送develop分支到远端

git checkout -b feature-zz develop    # 从develop分支新建并检出feature分支
# 这里可以进行一些功能开发,并不断的add和commit
git checkout develop    # 切换回develop分支
git pull origin develop    # 更新远端代码,看develop分支是否有更新(有更新)
git checkout feature-hu    # 切换回feature分支
git rebase develop    # 合并develop分支到feature分支,并解决冲突(有冲突)
# 这里需要进行冲突解决
git add .    # 解决完冲突之后执行add操作
git rebase --continue    # 继续刚才的rebase操作
git checkout develop    # 切换回develop分支
git merge --no-ff feature-zz    # 合并feature分支到develop分支(无冲突)
git push origin develop   # 推送develop分支到远端


echo "# xiangmu" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:GitHuUser/xiangmu.git
git push -u origin master

git diff用来查看文件做了什么修改

git log --pretty=oneline命令显示从最近到最远的提交日志

git reset --hard HEAD^

git reflog用来记录你的每一次命令

git reset --hard commit_id

git diff HEAD -- <file>用来查看工作区和版本库最新版本的区别

git checkout -- file用来丢弃工作区的修改

git reset HEAD file用来把暂存区的修改撤销掉,重新放回工作区

git rm从版本库中删除文件

git checkout -- file从版本库中恢复删除的文件

git checkout是用版本库里的版本代替工作区的版本

git remote add origin git@github.com:GitHuUser/Git_repository.git

git remote add origin git@server-name:path/repo-name.git关联一个远程库

git push -u origin master第一次推送master分支的所有内容

git push origin master第一次推送之后就可以使用该命令推送最新修改

git clone git@github.com:GitHuUser/gitskills.git

git checkout -b dev创建一个dev的分支 加上-b参数表示创建并切换相当于git branch dev和git checkout dev两条命令

git branch命令来查看分支

git branch <name>创建分支

git checkout <name>切换分支

git merge dev把dev分支的工作成果合并到当前分支上

git branch -d <name>删除分支

git log --graph命令可以看到分支合并图

git log --graph --pretty=oneline --abbrev-commit

git merge --no-ff -m "merge with no-ff" dev --no-ff参数表示禁用Fast forward

git stash把当前工作现场"储存"起来,等以后恢复现场后继续工作

git stash apply恢复工作现场,但是stash内容不删除,可以用git stash drop删除,或者直接用git stash pop

git stash list查看stash内容

git branch -D dev可以强制删除分支

git checkout -b dev origin/dev创建远程origin的dev分支到本地

====================***********************====================
====================***********************====================
====================***********************====================
多人协作的工作模式通常是这样:

首先,可以试图用git push origin branch-name -f推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字

这就是多人协作的工作模式,一旦熟悉了,就非常简单
====================***********************====================
====================***********************====================
====================***********************====================

git remote -v使用查看远程库信息

git push origin branch-name从本地推送分支,如果推送失败在先用git pull抓取远程的新提交

git checkout -b branch-name origin/branch-name在本地创建和远程分支对应的分支,名字最好一致

git branch --set-upstream (或者--track或者--set-upstream-to) branch-name origin/branch-name

git pull从远程抓取分支,如果有冲突,先处理冲突

git tag vx.x commit_id

git tag -a v0.1 -m "version 0.1 released" commit_id创建带有说明的标签,用-a指定标签名,-m指定说明文字,指定标签信息

git tag -s v0.2 -m "signed version 0.2 released" fec145a通过-s用私钥签名一个标签,用PGP签名标签

git tag查看所有标签

git tag -d v0.1删除标签

git push origin <tagname>推送某个标签到远程

git push origin --tags一次性推送全部尚未推送到远程的本地标签

git tag -d <tagname>可以删除一个本地标签

git push origin :refs/tags/<tagname>可以删除一个远程标签


 

© 著作权归作者所有

共有 人打赏支持
老王哥哥
粉丝 0
博文 16
码字总数 9532
作品 0
德阳

暂无文章

io流

码农屌丝
27分钟前
0
0
SpringBoot基础篇之重名Bean的解决与多实例选择

更多Spring文章,欢迎点击 一灰灰Blog-Spring专题 当通过接口的方式注入Bean时,如果有多个子类的bean存在时,具体哪个bean会被注入呢?系统中能否存在两个重名的bean呢?如果可以,那么怎么...

小灰灰Blog
37分钟前
0
0
记录一次dubbo项目实战

一、案例说明 存在2个系统,A系统和B系统,A系统调用B系统的接口获取数据,用于查询用户列表。 二、环境搭建 安装zookeeper,解压(zookeeper-3.4.8.tar.gz)得到如下: 然后进入conf将zoo_s...

Java烂猪皮
41分钟前
0
0
拜托,别再问怎么深入学习分布式架构了!

由于分布式系统所涉及到的领域众多,知识庞杂,很多新人在最初往往找不到头绪,不知道从何处下手来一步步学习分布式架构。 本文试图通过一个最简单的、常用的分布式系统,来阐述分布式系统中...

Java架构资源分享
42分钟前
0
0
《netty入门与实战》笔记-05:心跳与空闲检测

本小节,我们一起探讨最后一个话题:心跳与空闲检测 首先,我们来看一下,客户端与服务端之间的网络会存在什么问题? 1. 网络问题 下图是网络应用程序普遍会遇到的一个问题:连接假死 连接假...

Funcy1122
48分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部