95992828九五至尊2

常用命令计算,git基本常用命令总括

一月 26th, 2019  |  882828九五至尊手机版

Git是一个分布式文件版本管理种类。Git
直接记录文件快照,而非差别比较,所以在切换分支速度极快,大概是秒切。所有操作基本上都是地面执行,时刻保持数据完整性,每台机械上都有完整的
Git
提交历史,即便不联网,也能自由切换来历史版本。多数操作仅添加多少,也就是说,操作都是可过来的。

官网:https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E5%8F%96%E5%BE%97%E9%A1%B9%E7%9B%AE%E7%9A%84-Git-%E4%BB%93%E5%BA%93

早先化目录

# 创建空的 Git 目录
git init 
git add README
git commit -m 'initial project version'

# 或者使用 clone 方式从远程复制一个
git clone git://git.kernel.org/pub/scm/git/git.git [mygit]

1.Git 基础 – 取得项目标 Git 仓库:

git config –list 检查已部分配置新闻

git config –global user.name “王路路” git config user.email
wanglulu@rongcloud.cn

git help config 学习 config 命令可以怎么用

git init 要对现有的某个项目初叶用 Git 管理(需到此项目所在的目录执行)

文本状态

干活目录上边的富有文件都不外乎那三种处境:已跟踪或未跟踪。已跟踪的公文是指本来就被纳入版本控制管理的文件,在上次快照中有它们的笔录,工作一段时间后,它们的动静恐怕是未更新(nothing
to commit),已修改(Changes not staged for
committed)或者已放入暂存区(Changes to be
committed)。而享有其余文件都属于未跟踪文件(Untracked
files),它们既没有上次立异时的快照,也不在当前的暂存区域。如下图

  • README.txt
    已放入暂存区,等待被提交。使用git commit -m 'change log'提交
  • benchmarks.rb已修改,但修改未放入暂存区。使用git add benchmarks.rb丰盛到暂存区
  • b.txt未依照,须求用命令git add b.txt拉长到暂存区。

亟需注意的是,每趟修改文件都须要实施git add filename将修改添加到暂存区,而不仅仅只是新文件。也就是说,每一次变更,都要履行三个指令,git addgit commit才能将改成添加到版本库中。一次完整的提交进度:

# 将当前目前下的所有更改添加到暂存区,或者根据情况,只添加某些文件的更改,将 . 换成文件名
git add .  
# 将暂存区的内容添加到 Git 版本库中,永久存储。这一步无法选择要提交哪些内容,所有暂存区的内容都会被提交。
git commit -m 'change log'  

2.Git 基础 – 记录每趟换代到库房:

git status 检查当前文件状态

git add README 先河盯住 README 文件

多职能命令 git add:

发端盯住新文件;把已跟踪的文件放到暂存区;合并时把有顶牛的文书标记为已解决情状;

cat .gitignore 忽略某些文件

*.[oa] 忽略所有以 .o 或 .a 结尾的文本

*~ 忽略所有以波浪符(~)结尾的文书

git diff
没有暂存的文件更新了如何部分(当前文件和暂存区域快照之间的距离)

git diff –cached 已经暂存起来的公文和上次付出时的快照之间的分歧

git commit 提交更新 本地文件提交到当地库中
会启动文本编辑器以便输入本次交付的表达

git commit -a -m ‘added new benchmarks’

-a 跳过使用暂存区域  

-m 参数后跟提交声明的章程,可以在一行命令中付出更新

git rm grit.gemspec 移除某个文件
从已跟踪文件清单中移除(暂存区域)然后交给。

git rm –cached readme.txt
删除(从暂存区域移除),但依然希望保留在当前工作目录中

git mv file_from file_to 移动文件

.gitignore

偶然,大家兴许不想跟踪一些文书,比如工程文件的布署文件,编译生成的二进制文件。那几个文件无需纳入版本管理,否则在社团合营,合并代码时便于发生争持。在项目标根目录下,新建.gitignore文件,将不要求跟踪的文件添加到里面,如下:

# 此为注释 – 将被 Git 忽略
# 忽略所有 .DS_Store 结尾的文件
*.DS_Store
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# ignore all .txt files in the doc/ directory
doc/**/*.txt
# A **/ pattern is available in Git since version 1.8.2.

比方在创制.gitignore文件前,这个文件已经进来版本管理时,须要先将它们从暂存区中去除:git rm —cached filename
git rm -rf —cached .,让.gitignore生效。

3. Git 基础 – 查看提交历史

git log 查看提交历史

git log -p -2  
-p 选项举办显示每一回提交的始末差距,用 -2 则仅浮现方今的一回立异

git log –stat 突显简要的增改行数计算

git log –pretty= 指定使用完全差距于默许格式的方法浮现提交历史

oneline 将各种提交放在一行呈现,这在交付数很大时万分实惠

short full 和 fuller

git log –since=2.weeks 多年来两周内的提交

git log –since=2017-5-23 具体的某一天之后的付出

对比

git diff可以查阅当前涂改和某次提交之后都转移了什么东西。

  1. 翻看已暂存和未暂存的更新 :git diff
  2. 翻开已暂存和上次提交时的快照之间的更动: git diff —cached 或 git diff
    —staged
  3. 相比较当前付出和某个提交:git diff 99734f7ff
  4. 比较之下当前支行和其余某个分支:git diff test

git diff

4. Git 基础 – 撤废操作

git commit –amend 打消刚才的提交操作,使用当前的暂存区域快照重新提交

即使刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 –amend 提交:

git commit -m ‘initial commit’ git add forgotten_file git commit
–amend

git reset HEAD benchmarks.rb 裁撤暂存 benchmarks.rb 文件

git checkout — benchmarks.rb 裁撤对文件的修改

查看提交历史

  1. 翻看提交日志,只列出时间和提交消息:git log
  2. 翻开目前2次付出的历史,并列出改变的情节差距:git log -p -2
  3. 以图片的方式列出提交历史: git log –oneline –graph

git log -p -2

5 .Git 基础 – 远程仓库的选用

git remote 查看当前布局有怎样远程仓库

git branch 查看分支

git branch testing 新建一个 testing 分支

git remote -v 突显远程仓库及相应的仿制地址

git remote add pb git://github.com/paulboone/ticgit.git
要添加一个新的长途仓库pb

git fetch pb
从远程仓库拉取所有地点仓库中还没有的数量(并不活动合并到当前工作分支)

git push origin master 本地仓库数据推送到长途仓库 本地 master
分支推送到 origin 服务器上

git remote show origin 查看远程仓库origin的详细音信

git remote rename pb paul
修改某个远程仓库在当地的简称,比如想把 pb 改成 paul

git remote rm paul 移除远端仓库paul

取消操作

  1. 修改最终四次提交音信:git commit –amend
  2. 注销已经暂存的文件:git reset HEAD filename
  3. 收回对文件的修改:git checkout — filename
  4. 回来到某个节点,不保留修改:git reset –hard HASH
  5. 回到到某个节点,保留修改:git reset –soft HASH

6. Git 基础 – 打标签

git tag 列出现有标签

长距离仓库

  1. 查看:git remote -v
  2. 添加远程仓库:git remote add pb
    git://github.com/paulboone/ticgit.git
  3. 拉取远程仓库的代码到当地仓库:git fetch pb
  4. 修改远程仓库地址:git remote set-url origin
    git://github.com/newuser/ticgit.git

7. Git 分支 – 何谓分支

HEAD 指向您在工作中的地头分支的指针(将 HEAD 想象为近日支行的别名)

git branch testing 新建一个 testing 分支

git checkout testing 转换来新建的 testing 分支

打标签

每一遍推送一个新的本子到长途仓库的 master 时,须求打一个版本号的竹签。

  1. 查看标签:git tag -l
  2. 打标签:git tag -a v1.4 -m ‘my version 1.4’
  3. 翻算命应标签的版本消息:git show v1.4
  4. 推送标签到长途:git push origin v1.5 或者 git push origin –tags

8. Git 分支 – 分支的新建与统一

git checkout -b iss53 新建并切换来 testing 分支

回来 master 分支并把hotfix合并进来:

git checkout master ;

git merge hotfix;

git branch -d hotfix 删掉hotfix分支

冲突时的会面:

git status 查看合并时的争杂谈件 未缓解争持以未合并(unmerged)状态列出

git mergetool
可视化的会见工具,退出后会询问是或不是成功,是,会把公文暂存以评释状态为已解决

git status 再运行四回 来确认所有争持都已解决

分支

在 Git
中付出时,会保留一个交给(commit)对象,该对象涵盖一个对准暂存内容快照的指针。Git
中的分支,本质上是个针对 commit 对象的可变指针。

9. Git 分支 – 分支的军事管制

git branch 当前具备支行的清单

git branch -v 查看种种分支最终一个交到对象的音信

git branch –merged 查看哪些分支已被并入当前支行

git branch –no-merged 没有与眼前支行合并的支行

git branch -D testing 强制执行删除分支

新建分支

git branch test
git checkout test
# 或者直接 checkout -b, -b 参数表示新创建一个分支
git checkout -b test

10. Git-分支-远程分支

git fetch origin 同步远程服务器上的数量到地头

git push origin serverfix 本地的serverfix 分支推送到长途仓库的 serverfix
分支中去

git push origin serverfix:awesomebranch
把本地分支推送到某个命名不一样的长途分支

git checkout -b serverfix
origin/serverfix在长途分支的根基上不一样出一个新的支行

git push origin :serverfix在服务器上删除 serverfix 分支

 

联合分支

将 issue-1 分支合并到 master:

git checkout master
git merge issue-1 

# 合并后删除
git branch -d issue-1

争执解决

merge代码的时候,假使多个分支对同一行文件做了不均等的改动,便会生出争论。解决争辨必要人工参预,编辑争辨的文件,选拔正确的一条龙代码,然后再次提交。
一经代码爆发争论,冲突的文书会见世类似上边的内容:

<<<<<<< HEAD
<div id="footer">contact us at support@github.com</div>
=======
<div id="footer">
      please contact us at support@github.com
</div>
>>>>>>> issue-1

<<<<<<< HEAD=======
之间是近来支行的代码,=======>>>>>>> issue-1issue-1分段的代码,那行代码差别,那里大家拔取issue-1的代码,修改后这几行变为

<div id="footer">
      please contact us at support@github.com
</div>

修改完未来,运行git add .; git commit -m 'merged'交给当前修改后的代码,争执便解决了,代码也合并了。

管住分支

列出近来享有地点分支: git branch
富含各分支最终交给音信: git branch -v
查阅当前支行已统一的分层: git branch –merged
删除分支:git branch -d testing

长途分支

长途分支(remote
branch)是对长距离仓库中的分支的目录,远程分支的意味形式:(远程仓库名)/(分支名)
。如 origin/master,origin 是长途仓库名,master是分支名。

翻看远程分支: git branch -r
推送本地分支: git push origin master
拉取远程分支并联合到当下支行:git pull origin master
赢得远程代码到本地仓库:git fetch origin
联合远程分支到地点分支代码:git merge origin/master
地面新建远程分支:git checkout -b hotfix origin/master # 从远程 master
分支上新建本地 hotfix 分支
除去远程分支,在分支名前加冒号:git push origin :hotfix # 删除远程
hostfix 分支

git pull = git fetch + git merge

Stash

要切换来其它分支又不交付当前的修改时,使用 git stash
保存当前涂改到一个储藏室中,须求时再度使用修改

  1. 保留修改:git stash
  2. 采纳保存起来的改动:git stash apply 或 git stash pop
  3. 查看已封存的stashing:git stash list
  4. 删除stash:git stash drop

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图