git常用命令速查表,Git常用命令--(ls,cat,mv,touch)
git常用命令速查表,Git常用命令--(ls,cat,mv,touch)详细介绍
本文目录一览: git常用命令是什么?
1、在当前目录新建一个Git代码库,:$ git init
2、新建一个目录,将其初始化为Git代码库,:$ git init [project-name]
3、下载一个项目和它的整个代码历史,:$ git clone [url]
4、显示当前的Git配置,:$ git config --list
5、编辑Git配置文件,:$ git config -e [--global]
6、设置提交代码时的用户信息,:$ git config [--global] user.name "[name]",:$ git config [--global] user.email "[email address]"
7、添加指定文件到暂存区,:$ git add [file1] [file2] ...
8、添加指定目录到暂存区,包括子目录,:$ git add [dir]
9、添加当前目录的所有文件到暂存区,:$ git add .
10、对于同一个文件的多处变化,可以实现分次提交,:$ git add -p
11、删除工作区文件,并且将这次删除放入暂存区,:$ git rm [file1] [file2] ...
12、停止追踪指定文件,但该文件会保留在工作区,:$ git rm --cached [file]
13、改名文件,并且将这个改名放入暂存区,:$ git mv [file-original] [file-renamed]
14、提交暂存区到仓库区,:$ git commit -m [message]
15、提交暂存区的指定文件到仓库区,:$ git commit [file1] [file2] ... -m [message]
16、提交工作区自上次commit之后的变化,直接到仓库区,:$ git commit -a
17、提交时显示所有diff信息,:$ git commit -v
18、使用一次新的commit,替代上一次提交
19、 如果代码没有任何新变化,则用来改写上一次commit的提交信息,:$ git commit --amend -m [message]
20、重做上一次commit,并包括指定文件的新变化,:$ git commit --amend [file1] [file2]
扩展资料:
git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
Git 常用命令速查:
git branch 查看本地所有分支。
git status 查看当前状态。
git commit 提交。
git branch -a 查看所有的分支。
git branch -r 查看远程所有分支。
git commit -am “init” 提交并且加注释。
git remote add origin git@192。168。1。119:ndshow。
git push origin master 将文件给推到服务器上。
git remote show origin 显示远程库origin里的资源。
git push origin master:develop。
扩展资料
git的简单介绍
git如C编程语言、C++、java等,编写计算机、手机或游戏机上的游戏。 目前流行的游戏编程语言为C++编程语言。
游戏编程接口为DirectX9.0、OpenGL和SDL(Simple DirectMedia Layer)等。现在手机上玩的游戏分为Android与IOS两种平台,分别是用java和object-c(或swift)。当然时下也流行一些跨平台的编程引擎,例如cocos2d-x、unity 3D等。
参考资料来源:Git-Git是什么
Git 指令,看这个就够了,赶紧收藏,方便查阅
1.初始化Git本地仓库:
git init
2.Git添加远程仓库:
git remote add origin 你的远程仓库地址>
3.Git 克隆远程仓库:
git clone 需要克隆的远程仓库地址>
4.添加文件到Git仓库:
git add 需要添加的文件>
或:
git add . (PS:"add ." 表示把当前路径下的所有文件都添加到Git仓库)
5.把文件提交到Git仓库(PS:提交之前,需要先添加):
git commit -m"你的提交说明>"
6.把本地提交的文件推送到远程仓库:
git push -u origin 你的分支>
如果之前提交有时间使用 "-u",则可以使用:
git push
7.查看所有分支:
git branch
PS:如下表示有两个分支,master分支和dev分支,*表示当前分支
*master
dev
8.创建新分支:
git branch 分支名称>
9.切换分支:
git checkout 分支名称>
10.创建分支且切换到新分支:
git checkout -b 分支名称>
PS: 等价于
git branch 分支名称>
git checkout 分支名称>
11.删除分支:
git branch -d 分支名称>
12.合并指定分支到当前分支:
git merge 指定分支名称>
13.Git 变基:
git rebase 指定分支名称>
14.基于最新的提交创建标签:
git tag 标签名称>
15.删除指定标签:
git tag -d 指定标签名称>
16.列出所有的本地标签:
git tag
17.查看所有的提交 历史 :
git log
18.查看指定文件的提交 历史 :
git log -p 指定文件>
19.以列表方式查看指定文件的所有提交 历史 :
git blame 指定文件>
20.隐藏工作现场, 工作内容暂不提交:
git stash
PS:在临时需要处理紧急bug,当前代码又不想提交的情况下,使用该条指令较为方便
21.恢复之前隐藏的工作现场:
git stash apply
PS:恢复工作现场之后,stash的内容并不会删除
22.删除工作现场(在恢复工作现场之后使用):
git stash drop
23.恢复工作现场并删除stash内容
git stash pop
24.版本回退到上一个版本:
git reset --hard HEAD^
PS:^的个数表示回退版本的个数,例如回退3个版本:
git reset --hard HEAD^^^
25.版本回退到指定版本:
git re set --hard 指定版本号>
PS:可以通过git log 可以查看版本号,回退是,指定版本号可以不写全,写前几位即可
26.查看远程版本库信息:
git remote -v
28.查看指定远程版本库信息:
git remote show 指定版本库>
29.从远程仓库获取代码:
git fetch 远程仓库>
30.下载远程仓库代码并合并到本地:
git pull 远程仓库> 远程分支>
31.上传所有标签:
git push --tags
32.状态查询:
git status
Git & Repo 最基本命令 菜鸟教程
前言:发现新来小伙伴,对git以及repo命令还不是特别熟悉,因此对git及repo最基本命令做了一下小结:
************************Repo*************************************
repo init -u? ssh://git@gitlab...manifest.git ?-b [分支]
repo sync
repo status
repo branch
repo manifest?
repo diff
repo help
************************ 查看 *************************************
1 、查看本地分支
git branch
2 、查看远程分支
git branch -r
3 、查看所有分支
git branch -a
4 、查看状态
git status
5 、查看提交日志
git log
************************ 创建 *************************************
本地创建新的分支
git branch [branch name]
切换到新的分支
git checkout [branch name]
创建 + 切换分支
git checkout -b [branch name]
************************ 删除 *************************************
删除本地分支
git branch -d [branch name]
删除 github 远程分支 ?
git push origin :[branch name]
************************ 推送 *************************************
将新分支推送到 github
git push origin [branch name]
提交分支数据到远程服务器
git push origin
:
例如:
git push origin?2.0.1.20120806:2.0.1.20120806
远程分支和本地分支需要区分好,所以,在从服务器上拉取特定分支的时候,需要指定远程分支的名字。
git checkout --track origin/2.0.1.20120806
注意该命令由于带有--track参数,所以要求git1.6.4以上!这样git会自动切换到分支。
************************ 分支合并 merge*************************************
git merge feature/login
git merge? damo_release_201020_feedingRank
************************tag*************************************
git tag 2.0.2
git push --tags
1、拉取远端指定的分支(本地不存在)
git fetch
git checkout -b 本地分支名 origin/远程分支名
2、创建本地分支,并推送到远端
(二) . 推送本地分支到远程仓库
git push --set-upstream origin 分支名
本地分支推送到远端:
repo forall -c git push ika damo_:damo_
本地分支与远端建立关联跟踪:
repo forall -c git branch --set-upstream-to=module/damo_? damo_
设置本地分支与远程分支的追踪:
git branch --set-upstream-to=origin/远程分支名 本地分支名
基于远端分支创建分支:
1、先fetch 远端的 ila_210120
repo forall -c git fetch ila ila_210120
2、基于远端的ila_210120创建? damo_ila_210120分支
?repo forall -c git checkout -b damo_ila_210120 ila/ila_210120
cherry-pick :(某一个 commit )
git cherry-pick f8857cbb08519b10981b0e2df999363ebfe8b6d3
push 推送到远端
git push ila damo_ila_210120_review
强推:
git push --force ila 201140_newGuide_oneCommit
合成一个 commit 流程 :
1、创建一个新分支:
2、reset到第一个commit:
3、重新commit:
reset 区别:
repo forall -c git reset --hard
repo forall -c git reset --soft f8857cbb08519b10981b0e2df999363ebfe8b6d3
?
1、 https://www.cnblogs.com/mmykdbc/p/9076063.html
2、 https://blog.csdn.net/top_code/article/details/51931916
3、 https://www.jianshu.com/p/bf7b09e234c8
4、 template 模板: https://blog.csdn.net/weixin_38019025/article/details/103951002
Control + C? 退出终端执行的任务
6 、电脑目录:
~/.
/Users/yuyahui
Git常用命令
1.1 配置环境
当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。该用户信息和GitHub上注册的远程仓库的相关信息没有任何关系。
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --list
配置信息保存在用户目录下的.giitconfig文件中
1.2 获取Git仓库
要使用Git对我们的代码进行版本控制,首先需要获得Git仓库
获取Git仓库通常有两种方式:
执行步骤如下:
1、在电脑的任意位置创建一个空目录作为我们的本地Git仓库
2、进入这个目录中,点击右键打开Git bash 窗口
3、执行命令git init
可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地的命令形式为:
git clone 远程Git仓库地址
1.3 工作目录、暂存区以及版本库概念
版本库:.git隐藏文件就是版本库,版本库存储了很多配置信息、日志信息和文件版本信息等
工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
1.4 Git工作目录下文件的两种状态
Git工作目录下的文件存在两种状态:
Unmodified 未修改状态
Modified 已修改状态
Staged 已暂存状态
这些文件的状态会随着我们执行Git的命令发生变化
1.5 本地仓库操作
git status 查看文件状态
也可以使用git status -s使输出信息更简洁
git add 将未跟踪的文件加入暂存区,将已经修改的文件加入暂存区也是通过这个命令
git reset 将暂存区文件取消暂存
git commit -m “你的说明” 将暂存区文件提交到本地仓库
git rm 删除文件 说明:这种操作是直接将文件加入到暂存区里面,直接提交到本地仓库生效,而直接删除的话没有进入到暂存区,需要先把文件加入到暂存区之后,再提交到本地仓库。
将文件添加至忽略列表
一般我们总会有些文件无需纳入Git的管理,也不希望他们总出现在未跟踪文件列表。通常这些都是自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,我们可以在工作目录中创建一个名为.gitnore的文件(文件名称固定),列出忽略的文件模式。下面是一个示例:#代表注释
由于windows无法创建不含文件名的文件,因此我们需要在bash窗口中用如下命令创建。
git log 查看日记记录
1.6 远程仓库操作
如果想查看已经配置的远程仓库服务器,可以运行git remote 命令。它会列出指定的每一个远程服务器的简写。如果已经克隆了远程仓库,那么至少可以看见origin,这是Git克隆的仓库服务器的默认名字
git remote -v 可以查看对远程仓库详细一点的说明
git remote show origin 可以查看对origin更详细的远程仓库的说明
运行git remote add 添加一个远程Git仓库,同时指定一个可以引用的简写
如果你想获得一份已经存在了的Git仓库的拷贝,这时需要用到 git clone 命令。Git克隆的是Git仓库服务器上的几乎所有数据(包括日志信息、 历史 记录等),而不仅仅是复制工作所需要的文件。当你执行git clone 命令的时候,默认配置下Git仓库中的每一个文件的每一个版本都将被拉取下来。
如果因为一些原因想要移除一个远程仓库,可以使用git remote rm
注意:此命令只是从本地移除远程仓库的记录,并不会影响到远程仓库
git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge
说明:如果使用fetch命令,拉取的文件会放到版本库里面,不会自动整合到工作区,如果需要整合到工作区,需要使用 git merge 远程仓库别名/远程仓库分支
git pull 是从远程仓库获取最新版本并merge到本地仓库
注意:如果本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库中拉取文件的时候会报错(fatal:refusing to merge unrelated histories),解决此我呢提可以在git pull 命令后加入参数 --allow-unrelated-histories
git push
1.7 Git分支
几乎所有的版本控制系统都是以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。Git的master是一个特殊分支。它跟其它分支没有区别。之所以每一个仓库都有mater分支,是因为git init默认创建它,并且大多数人都懒得去改动它。
# 列出所有本地分支
$ git branch
#列出所有远程分支
$ git branch -r
#列出所有本地分支和远程分支
$git branch -a
git branch 分支名称
git checkout 分支名称
git push 远程仓库别名 远程仓库分支
git merge 分支名称 说明:在当前分支下合并其他分支
注意:如果两个分支存在同样的文件名且同行的内容不一样,那么会产生矛盾,需要自己手动修改产生矛盾后的文件,然后添加到暂存区然后提交。
git branch -d 分支名称
如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,可以将命令中的-d参数改为-D
如果要删除远程仓库中的分支,可以使用命令git push origin -d branchName
1.8 Git标签
像其他版本控制系统一样,Git可以给 历史 中的某一给提交打上标签,以示重要。比较有代表性的是人们会使用这个功能来标记发布结点(v1.0、v1.2等)。标签指的是某个分支某个特定时间点的状态。通过标签,可以很方便地切换到标记时的状态。
#新建一个tag
$ git tag [tagName]
$ git tag
#新建一个分支,指向某个tag
$ git checkout -b [branch] [tag]
#删除本地tag
$git tag -d[tag]
#删除远程tag
$git push origin :refs/tags/[tag]
Git常用命令--(ls,cat,mv,touch)
描述:列出有关文件的信息(默认为当前目录)。如果没有指定-cftuvSUX或——Sort,则按字母顺序排序。
-a 列出所有文件,包括隐藏文件和以“.”开头的文件;
-d 列出目录本身;
-l 列出条目的详细信息;
-r 以反序排列;
-t 按时间排列;
-h 显示的文件大小按人类可读的方式;
-R 递归处理子目录 ;
-X 以文件名的后缀排序;
-S 按文件大小排序
ls
列出当前目录下的所有文件,这个用的最多。
ls -al
列出所有文件(包括隐藏文件和以“.”开头的文件),及其详细信息;
ls - lt
列出所有文件详细信息,并按时间排序,时间最近的靠前。
描述:连接和查看文本文件
-n 从1开始对所有输出行进行编号;
-b 和n相似,但是空行不编号;
-s 遇到连续空行时合并为一行;
cat file1
打印文件内容
cat file1 file2 > file3
合并文件1和2的内容输出到文件3,如果文件3存在则覆盖
cat -n file1 >> file2
把文件1的内容按行编号后追加到文件2
描述:用来移动文件或者重命名
-b 若需覆盖文件,则覆盖前先备份;
-f 如果目标文件存在,强制覆盖;
-i 若目标文件存在,询问是否覆盖;
-t 移动多个源文件到一个目录,使用中目标目录写在前,源文件在后
mv aa.txt bb.txt
将文件aa.txt改名为bb.txt;
mv aa.txt demo
将文件aa.txt移动到目录demo中;
mv aa.txt bb.txt dir1; mv -t ~/Desktop/demo-1/dir2 aa.txt bb.txt
先将文件aa.txt和bb.txt移动到目录dir1,然后再将文件aa.txt和bb.txt移动到目录dir2中;
mv dir1 dir2
如果目录dir2不存在,将目录dir1改名为dir2;如果dir2存在,将dir1移动到dir2
描述:用来新建一个文件,或者修改已存在文件的时间戳
-a 只更改存取时间;
-c 不建立任何文档;
-d 使用指定的日期时间;
touch aa.txt bb.txt
创建文件aa.txt和bb.txt
touch -c cc.txt
如果cc.txt不存在就不更改时间戳也不建立cc.txt
touch -r bb.txt
更新bb.txt的时间戳
Git命令和参数都很多,需要慢慢学。可以使用Git的 --help命令查看详细用法,如输入cat --help,查看cat命令的参数及使用方法。也可以使用网站explainshell.com,输入各种组合参数的命令来查询,每一个参数都会有解释。
Git 中 6 个基本常用命令
大家好啊,我是大田。
想更深刻了解 Git 常用命令,先来看看原理图:
我们使用 Git 操作的核心步骤就是:
先add代码到git缓存
然后commit到git本地仓库
最后push到远程Github代码仓库
备注:
workspace:当前工作区,需要经过 add、commit、push 才能上传到远程仓库
index:缓存区,标记你本地的哪些内容是被 git 管理的
repository:本地仓库,保存各个版本的提交
remote:远程仓库
1、克隆远程项目到本地
git clone url
2、克隆后,创建新分支,名字叫 dev
git checkout -b dev
3、加到缓存区
1)git add .:添加所有项目至缓存区
2)git add 目录名:添加指定目录到缓存区
3)git add 文件名:添加指定文件到缓存区
4、提交至本地仓库
git commit -m "注释信息"
5、推送本地仓库信息至远程仓库
git push origin master:将本地分支的更新内容,全部推送至远程仓库 master 分支
git push origin dev:将本地 dev 分支推送到远程,再由一个人统一加到 master 分支上
6、拉取远程仓库最新文件
git pull:拉取远程仓库所有分支合并到本地
git pull origin master:拉取远程master分支,合并到当前本地master分支
git fetch:仅做拉取操作,不做合并,合并需要自己再找其他方法
备注:一般都用 git pull
Git常用命令
git config —global user.name “Nshen” //必须 git config —global user.email “ nshen121@gmail.com ” //必须 git config —global color.ui “always” //或者"auto", always不仅Base环境是彩色,Dos里也是彩色的。 git config —global core.editor notepad.exe //设为windows记事本 git config —global alias.ci “commit” //别名缩写 git config —global merge.tool //可以设置合并工具 git config —global —list //查看设置 其实最后这些设置都保存在C:\Documents and Settings\用户名.gitconfig 文件下(windows) 查看帮助: git help command
git init
git add *.txt //添加所有txt文件 git add README //添加单个文件 git add . //添加所有文件包括子目录,但不包括空目录 add命令是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等)注意每次修改后都要重新add,不然就会提交之前add时的版本。 git add -i //进入交互式add git add -p //直接进入补丁模式,可以暂存修改的一部分。
git commit -m “initial project version” git commit -m “something” someFile //提交指定文件 git commit -C HEAD -a —amend //复用HEAD留言,增补提交(修改小错误,而不增加提交记录,掩盖自己的小马虎)
-m “提交的说明” -a 动把所有已经跟踪过的文件暂存,并提交.(工作目录中修改过的文件都提交到版本库,不需一个一个手动add了) —amend 增补提交 -C 复用指定提交的提交留言 -c 打开编辑器在已有的提交基础上编辑修改 e.g 修改最后一次提交: git commit -m 'initial commit'git add forgotten_filegit commit --amend 如果没有修改就相当于更改提交说明,上边3个命令得到一个提交. 忽略提交的文件: 所有人都需要忽略的文件要写在.gitignore文件里,而只有自己的个人偏好需要忽略的文件要写在.git/info/exclude文件中
# 此为注释 – 将被 Git 忽略***.a # **忽略所有 .a 结尾的文件!lib.a # 但 lib.a 除外 ***.[oa] # **忽略以.o或.a结尾的文件 ***~ # * 忽略以~结尾的文件/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODObuild/ # 忽略 build/ 目录下的所有文件doc/ .txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt查看文件改动: git diff // 比较工作目录与缓存区的区别 git diff —cached 或者 git diff —staged //缓存区与版本库里的区别 git diff HEAD //三者的区别 (请注意,单单 git diff 不过是显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异。所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。) git diff 18f822e //18f822e这个版本与当前目录的区别 git diff aaaaa..bbbbb //比较aaaaa与bbbbb之间差别 git diff —stat可以统计数据,比较特别的命令 重命名,移动,删除文件: git mv file_from file_to //改名或移动 $ git mv README.txt README$ git status# On branch master# Your branch is ahead of 'origin/master' by 1 commit.## Changes to be committed:#(use "git reset HEAD
..." to unstage)## renamed: README.txt -> README 其实,运行 git mv 就相当于运行了下面三条命令: $ mv README.txt README $ git rm README.txt $ git add README 必须调用 git rm 文件名 //从暂存区移除,并且文件也被删除 如果只是手工删除了文件,运行git status时会出现
# Changed but not updated:#(use "git add/rm
..." to update what will be committed)## deleted: grit.gemspec 此时必须再运行 git rm 文件名,才会在提交时候不再纳入版本管理. 如果删除之前修改过并且已经add到缓存区了的话,则必须强制删除 -f 另外一种情况是,我们想把文件从Git仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。比如一些大型日志文件或者一堆.a编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在 .gitignore 文件中补上,用 —cached 选项即可:
git status $ git status# On branch master# Changes to be committed: //只要在这行后边的,说明放入暂存区了#(use "git reset HEAD
..." to unstage) //想取消放入缓存 git reset HEAD README## new file: README# Changed but not updated: //跟踪文件内容改变,但还没有放到暂存区,需要git add 命令才会放到暂存区#(use "git add
..." to update what will be committed)#(use "git checkout --
..." to discard changes in working directory) //删除修改,恢复到之前版本,有危险 (如果想保留并且回退版本用stashing 和分支来处理)# modified: benchmarks.rb查看提交历史: git log 这时“j”向下浏览,“k”向上浏览,“q”退出 git log —pretty=oneline //一行显示 —pretty=“%h %s” //以各种格式输出 git log –p -2 //-p显示每次提交的内容差异 -2表示最近2次更改 git log —since “5 hours” —since “3 hours” —since “1 minute” —before =“2008-10.01” git log 27j34j3j..03u43u23 //最老版本..最新版本(不包括起点只包括终点) git log 34j4j4..HEAD git log fhfs8fh.. //省略HEAD git log “HEAD^ ”..“HEAD ” //windows必须加引号表示回溯上一个提交 git log -1 HEAD~1 //相当于git log -1 HEAD^
git blame hello.html //你也可以用"-L"参数在命令(blame)中指定开始#####和结束行: git blame -L 12,+10 hello.html //12到22行 blame还可以跟踪内容复制,文件复制,略,见版本控制之道 79页
git checkout head 文件名 //撤销暂存区的修改 git checkout head readme.txt todo.txt git checkout head *.txt git checkout head . //撤销所有
git revert HEAD //创建一个反向的新提交抵消原来的提交改动 如果需要反转多个,必须从最后的开始反转, 加 -n可以不马上提交,之后一起提交。 git revert -n HEAD git revert -n 54efhds git commit -m “revert head and 54efhds”
git reset —hard HEAD //所有未提交的内容清空,这会让"git diff" 和"git diff —cached"命令的显示法都变为空 git reset —soft HEAD //复位版本库,暂存差异,便于提交中发现错误需要更改时有用(例如私人密码放到里边了) 分支:在当前分支末梢建立分支: git branch RB_1.0(建立分支不会自动切换过去)
git checkout RB_1.0(切换到RB_1.0分支) 创建并切换分支: git checkout -b RB_1.0(简化上边2步操作)
git branch -d RB_1.0 基于某次提交、分支或标签创建新分支: git branch RB_1.0 master git branch RB_1.0 6fe57de0 git branch Rb_1.01 1.0
git branch -r //显示远程分支 git branch -a //列出所有分支
git branch -m master mymaster -M 大写M会覆盖同名的分支
直接合并: git merge 想合并到当前分支的源分支名 git merge —no-commit 分支 //合并但不提交 压合合并:将分支压合成一条commit记录,并合并过来 git merge —squash 某bug分支 git commit -m “修复某bug” 拣选合并:只合并一个提交 git cherry-pick 321d76f 如果需要连续拣选,就需要加 -n参数 然后再git commit ,但不要加-m参数,编辑器就会使用刚拣选的提交留言作为现在的留言。 标签Tag:查看标签: git tag
git tag 1.0 //在当前分支最后一次提交创建标签 git tag 1.0 RB_1.0 //基于RB_1.0分支的最新踢脚创建标签 git tag 1.0 ae468d8kt //为某次提交创建标签
git checkout 1.0 //检出标签与检出分支一样操作,但检出标签后用git branch查看本地分支会发现你现在不再任何分支上 这时你不应该修改,而应该立即基于此标签创建一个分支 git checkout -b from-1.0
1)git rebase RB_1.01 //也许修改过一个bug,希望新版本变基到RB_1.01分支上 2)手动解决冲突 //如果解决不了直接git rebase -abort来跳过特定提交或完全放弃变基 3)git add xxx.html //冲突解决 4)git rebase —continue git rebase --onto HEAD^^ HEAD^ HEAD //—onto参数可以改写历史抹掉中间的参数,将倒数第一个参数变基到倒数第3个参数,为防止出错建议在试验性分支上先试验。 rebase -i 可以排序历史记录,多个提交合并为1个,一个提交分解成多个提交 , 详见版本控制之道p86 ,需要编辑器支持,windows记事本不行 远程相关: git clone git://github.com/schacon/grit.git //从现有仓库克隆 git clone git://github.com/schacon/grit.git mygrit //换名,唯一区别就是新建的目录成了mygrit,其他都一样
git remote add pb git://github.com/paulboone/ticgit.git clone会默认添加origin仓库,如果原本用git init创建的版本库,后来又想提交到远程版本库,就可以用下边的办法 git remote add origin git@example.com :/xxxxxx
git remote -v //查看远程仓库,默认clone后,应该有一个origin仓库,-v显示对应的clone地址 git remote show origin //查看远程仓库信息
git remote rename pb paul git remote rm paul
git fetch [remote-name] 拉取远程仓库到本地远程仓库,不自动合并 //$ git fetch origin$ git fetch pbremote: Counting objects: 58, done.remote: Compressing objects: 100% (41/41), done.remote: Total 44 (delta 24), reused 1 (delta 0)Unpacking objects: 100% (44/44), done.From git://github.com/paulboone/ticgit* [new branch] master -> pb/master* [new branch] ticgit -> pb/ticgit 现在pb/master可以在本地访问了,你可以合并到自己的某个分支,或者切换到这个分支看看有什么有趣的更新 git pull 抓取数据合并到工作目录中当前分支
git push [remote-name] [branch-name] //默认为 git push origin master git push origin serverfix //推送分支,其实是下边一句的简化,提取我的 serverfix 并更新到远程仓库的 serverfix git push origin serverfix:serferfix git push origin :serverfix //这个语法用于删除,只要把分号前留空
git gc //垃圾回收,每隔一段时间例如一个月运行一次可以减少磁盘占用空间。 git reflog //最后的保障,列出误删的东东 git bisect //二分查找,版本控制之道p124页,略 归档版本库,导出压缩包: git archive —format=格式 —prefix=目录/ 版本>压缩包.zip git archive —format=zip head>test.zip git archive —format=tar —prefix=mysite-1.0/ 1.0 | gzip>mysite-1.0.tar.gz git archive —format=zip —prefix=mysite-1.0/ 1.0 >mysie-1.0.zip
Git工作流程和常用命令分享
git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。林纳斯·托瓦兹在编写第一个版本时就使用了“git”这个名称, 他将工具描述为“愚蠢的内容跟踪器”。
[图片上传失败...(image-c23291-1380064)]
四个专有名词:
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
打开本地生成的.git隐藏文件
创建新项目gittest
创建新文件test.txt
git add
git status显示有变更的文件
git restore
撤回文件修改内容
git commit –m “注释”
修改内容-> 执行git diff工作区和本地仓库的差异
git log显示当前分支的版本历史
git reset --hard HEAD^ 当前版本回退到上一个版本
git reset --hard HEAD^ ^ 当前版本回退到上上一个版本
git reset --hard HEAD~100 回退到前100个版本
恢复已经删除的版本
git reflog 展示所有的提交记录
git reset --hard
回退到指定版本
git push origin master 将本地master分支推送到远程master分支,相当于创建远程分支
git checkout -b dev = git branch dev + git checkout dev 创建并切换分支
git branch 不带参数,会列出所有本地的分支;带参数表示创建分支
git branch –d name 删除本地分支(-D表示强制删除)
git branch –r 不带参数,会列出所有远程的分支
git branch --set-upstream-to=origin/
本地和远程分支关联
git push origin –delete
删除远程分支
git merge release用于合并指定分支到当前分支上
注:Fast-forward表示的合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。在这种模式下,删除分支后,会丢掉分支日志信息。可以使用带参数 --no-ff来禁用”Fast forward”模式。
git merge --no-ff -m “注释”dev
git checkout release 切换release分支
vim test.txt 修改某条内容
git commit test.txt -m “release修改某条内容”
git checkout master 切换master分支
vim test.txt 修改某条同release内容
git commit test.txt -m “master修改某条内容”
git merge release 显示冲突
git status 显示冲突提示
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中>>>>release 是指release上修改的内容 vim test.txt 修改内容
git add test.txt
git commit -a -m “fix conflict”
当前分支有没有提交但也不合适现在就提交的内容,Git提供了暂储功能stash
git checkout release
vim test.txt 修改test.txt内容
git checkout develop 此时会提示Aborting
git status 查看当前状态
Git stash list 查看所有暂储列表
git stash apply恢复,恢复后stash内容并不删除,你需要使用命令git stash drop来删除; 另一种方式是使用git stash pop,恢复的同时把stash内容也删除了
创建Git Tag并推送远程服务器
git tag -a V1.0.0 –m“注释” //创建TAG
git push origin V1.0.0 //推送到远程服务器
git push origin --tag //提交所有tag至服务器
git tag -d V1.0.0 //删除本地标签
git push origin --delete tag
//删除远程标签
HEAD,它始终指向当前所处分支的最新的提交点。你所处的分支变化了,或者产生了新的提交点,HEAD就会跟着改变
add相关命令很简单,主要实现将工作区修改的内容提交到暂存区,交由git管理。
git add .添加当前目录的所有文件到暂存区
git add 添加指定目录到暂存区,包括子目录
git add 添加指定文件到暂存区
commit相关命令也很简单,主要实现将暂存区的内容提交到本地仓库,并使得当前分支的HEAD向后移动一个提交点。
git commit -m 提交暂存区到本地仓库,message代表说明信息
git commit --amend -m 使用一次新的commit,替代上一次提交
上传本地仓库分支到远程仓库分支,实现同步。
git push 上传本地指定分支到远程仓库
git push --force强行推送当前分支到远程仓库,即使有冲突
git push --all推送所有分支到远程仓库
关于分支,大概有展示分支,切换分支,创建分支,删除分支这四种操作。
git branch列出所有本地分支
git branch -r列出所有远程分支
git branch -a列出所有本地分支和远程分支
git branch 新建一个分支,但依然停留在当前分支
git checkout -b 新建一个分支,并切换到该分支
git checkout 切换到指定分支,并更新工作区
git branch -d 删除分支
git push origin --delete 删除远程分支
关于分支的操作虽然比较多,但都比较简单好记
merge命令把不同的分支合并起来。在实际开放中,我们可能从master分支中切出一个分支,然后进行开发完成需求,中间经过R3,R4,R5的commit记录,最后开发完成需要合入master中,这便用到了merge。
git merge 合并指定分支到当前分支
注:如果在merge之后,出现conflict,主要是因为两个用户修改了同一文件的同一块区域。需要针对冲突情况,手动解除冲突。
rebase又称为衍合,是合并的另外一种选择。
在开始阶段,我们处于new分支上,执行git rebase dev,那么new分支上新的commit都在dev分支上重演一遍,最后checkout切换回到new分支。这一点与merge是一样的,合并前后所处的分支并没有改变。
git rebase dev,通俗的解释就是new分支想站在dev的肩膀上继续下去。
rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交。
rebase也需要手动解决冲突。
1.如果你想要一个干净的,没有merge commit的线性历史树,那么你应该选择git rebase
2.如果你想保留完整的历史记录,并且想要避免重写commit history的风险,你应该选择使用git merge
reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。
git reset —soft 只改变提交点,暂存区和工作目录的内容都不改变
git reset —mixed 改变提交点,同时改变暂存区的内容
git reset —hard 暂存区、工作区的内容都会被修改到与提交点完全一致的状态
git revert用一个新提交来消除一个历史提交所做的任何修改。
在回滚这一操作上看,效果差不多。git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
在 Git工作区的根目录创建一个特殊的.gitignore文件。
在.gitignore文件中,添加需要忽略的文件。
git rm -r --cached . //将仓库中的index递归删除
git add . //重新添加仓库索引
git commit -m “update git.ignore” //提交
git branch --set-upstream-to=origin/
//重现将本地仓库和远程仓库关联
最后,如果此篇博文对你有所帮助,别忘了点个赞哟~
版本号>
git的常用的几个命令
git add 最基本的命令 将文件提交到index区
git commit 将文件提交到本地仓库
git push 提交到远程仓库
git checkout 用法很多 接文件名就表示放弃当前的修改 接分支名表示切换到另一条分支
推荐一本基础的git入门电子书 pro git简单易懂 适合入门级
1.安装Git
Linux
sudo apt-get install gitWindow:到Git官网下载安装:https://git-scm.com/downloads
2.配置全局用户Name和E-mail
$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"3.初始化仓库
git init4.添加文件到Git仓库
git add
提示:可反复多次使用,添加多个文件;
5.提交添加的文件到Git仓库
git commit然后会弹出一个Vim编辑器输入本次提交的内容;
或者
git commit -m "提交说明"6.查看仓库当前的状态
git status7.比较当前文件的修改
$ git diff
8.查看历史提交记录
git log或者加上参数查看就比较清晰了
$ git log --pretty=oneline9.回退版本
$ git reset --hard HEAD^说明:在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,以此类推,如果需要回退几十个版本,写几十个^容易数不过来,所以可以写,例如回退30个版本为:HEAD~30。
如果你回退完版本又后悔了,想回来,一般情况下是回不来的,但是如果你可以找到你之前的commit id的话,也是可以的,使用如下即可:
$ git reset --hard + commit id提示:commit id不需要写全,Git会自动查找;
补充说明:Git中,commit id是一个使用SHA1计算出来的一个非常大的数字,用十六进制表示,你提交时看到的一大串类似3628164...882e1e0的就是commit id(版本号);
在Git中,版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向回退的版本,然后顺便刷新工作区文件;
10.查看操作的历史命令记录
$ git reflog结果会将你之前的操作的commit id和具体的操作类型及相关的信息打印出来,这个命令还有一个作用就是,当你过了几天,你想回退之前的某次提交,但是你不知道commit id了,通过这个你可查找出commit id,就可以轻松回退了,用一句话总结:穿越未来,回到过去,so easy!
11.diff文件
git diff HEAD --
说明:查看工作区和版本库里面最新版本文件的区别,也可以不加HEAD参数;
12.丢弃工作区的修改
$ git checkout --
说明:适用于工作区修改没有add的文件
13.丢弃暂存区的文件
$ git reset HEAD
说明:适用于暂存区已经add的文件,注意执行完此命令,他会将暂存区的修改放回到工作区中,如果要想工作区的修改也丢弃,就执行第12条命令即可;
14.删除文件
$ rm
然后提交即可;
如果不小心删错了,如果还没有提交的话使用下面命令即可恢复删除,注意的是它只能恢复最近版本提交的修改,你工作区的修改是不能被恢复的!
$ git checkout --