git常用命令集详解
- 格式:pdf
- 大小:87.88 KB
- 文档页数:3
git push命令用法git push命令用法1. 简介git push是Git中用于将本地的代码推送到远程仓库的命令。
它是Git中最常用的命令之一,具有广泛的应用场景。
2. 基本用法•git push <远程仓库名> <分支名>:将本地指定分支的代码推送到指定的远程仓库。
3. 实例演示1.创建一个新的Git仓库:git init2.添加文件:git add .3.提交文件:git commit -m "Initial commit"4.关联远程仓库:git remote add origin <远程仓库URL>5.将本地代码推送到远程仓库:git push origin master4. 推送指定分支•git push <远程仓库名> <本地分支名>:<远程分支名>:将指定的本地分支推送到指定的远程分支。
5. 实例演示1.创建一个新的Git仓库:git init2.添加文件:git add .3.提交文件:git commit -m "Initial commit"4.关联远程仓库:git remote add origin <远程仓库URL>5.将本地分支develop推送到远程分支feature:git pushorigin develop:feature6. 推送所有分支•git push <远程仓库名> --all:将所有本地分支推送到指定的远程仓库。
7. 实例演示1.创建一个新的Git仓库:git init2.添加文件:git add .3.提交文件:git commit -m "Initial commit"4.关联远程仓库:git remote add origin <远程仓库URL>5.将所有本地分支推送到远程仓库:git push origin --all8. 强制推送•git push <远程仓库名> --force:在需要强制更新远程仓库的情况下使用。
git命令之git clone用法教程自上个世纪九十年代以来,Linux系统得到了快速的发展,由于Linux继承了UNIX的以网络为核心的设计思想,采用模块化的设计结构,使得Linux取得了广泛的应用。
接下来是小编为大家收集的git命令之git clone用法教程,希望能帮到大家。
git命令之git clone用法教程在使用git来进行版本控制时,为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)://, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍.有些仓库可以通过不只一种协议来访问,例如,Git本身的源代码你既可以用 git:// 协议来访问:git clone git:///pub/scm/git/git.git也可以通过http 协议来访问:git clone /pub/scm/git/git.gitgit://协议较为快速和有效,但是有时必须使用http协议,比如你公司的防火墙阻止了你的非http访问请求.如果你执行了上面两行命令中的任意一个,你会看到一个新目录: 'git',它包含有所的Git源代码和历史记录.在默认情况下,Git会把"Git URL"里最后一级目录名的'.git'的后辍去掉,做为新克隆(clone)项目的目录名: (例如. git clone /linux/kernel/git/torvalds/linux-2.6.git 会建立一个目录叫'linux-2.6')另外,如果访问一个Git URL需要用法名和密码,可以在Git URL 前加上用户名,并在它们之间加上@符合以表示分割,然后执行git clone命令,git会提示你输入密码。
示例git clone robin.hu@/pub/scm/git/git.git这样将以作为robin.hu用户名访问/pub/scm/git/git.git,然后按回车键执行git clone命令,git会提示你输入密码。
Gitpull(拉取)及push(上传)相关命令介绍前⾔:博主最近在学习git命令,因为git是⼀个⾮常好⽤的分布式版本管理⼯具,功能⽐svn强⼤,与SVN不同点是Git去中⼼化,每⼀个分⽀都是⼀个中⼼,并且⽀持本地仓库存储,像如今很多⼤公司都⽤git做版本控制。
话不多说,具体命令整理如下:git拉取远程代码git clone https://xxx.git git拉取远程指定分⽀下代码(-b 分⽀名称)git clone -b v2.8.1 https://xxx.git初始化⼀个本地仓库,在同级⽬录下会出现⼀个隐藏的.git⽂件git init 查看git的配置信息git config -l git配置本地仓库的userName(必须)git config 'Lee' git配置本地仓库的邮箱(必须)gitconfiguser.email'************' 三级⽂件配置路径:.git/config/.gitconfig #当前⽤户⽬录/etc/gitconfig #git安装⽬录本地提交到git索引(缓存)中git add . #把新增的、修改的都加到缓存git add -A #把新增、和修改的、和删除的都加到缓存 本地从缓存中加到⽂件库(repository)中git commit -m '版本描述' #提交到⽂件库本地⼀件提交到⽂件库中git commit -am '版本描述' #⼀步完成提交 查看当前git状态信息(查看是否有⽂件未提交)git statusgit中的三类⽂件被追踪的(tracked):已经加⼊⽂档库不被追踪的(untracked):没有加⼊⽂档库忽略的(ignored):忽略那些不需要管理的⽂件夹或⽂件 git新建忽略⽂件⽬录下建⽴⼀个.gitignore⽂件(可以有多个,影响范围当前⽂件及⼦⽂件)touch .gitignore .gitignore⽂件忽略内容demo# Maven #target/# IDEA #.idea/*.iml# Eclipse #.settings/.classpath.project注意:新建的⼀个忽略⽂件,为什么没有⽣效答:可能是因为你的缓存区已经有忽略的⽂件了,所以需要先清空缓存区⾥的⽂件,重新add和commit操作删除缓存区所有⽂件命令git rm -r --cached . #主要这个点⼀定要写 重新add到缓存区git add . 每⼀次commit都是⼀个提交点,唯⼀标识SHA1的ID,ID可使⽤前4⾄7个数字表⽰查看git的⽇志信息git log给提交点打标签 git tag -a v0.2 4a80f64(提交点SHA1的ID的前7位)git tag -a tagV1 d819565b #提交点SHA1的ID的前7位回车之后会有输⼊tag内容的界⾯,然后像linux⼀样点击 i 编辑输⼊信息后 esc 然后 :wq 保存退出简化git⽇志输出格式git log --oneline显⽰主分⽀和⾃分⽀git⽇志(前⾯会多个星号)git log --oneline --graph查看本地添加了哪些远程分⽀地址git remote查看本地添加了哪些远程分⽀地址(详细)git remote -v删除本地指定的远程地址git remote remove origin 添加远程地址git remote add origin https://xxxxxxxxxxxx.git 分⽀:分⽀意味着你可以从开发主线(master)上分离开,在不影响主线的同事继续⼯git branch #列出当前开发所有分⽀(默认会有master)git branch king #创建⼀个king的分⽀(最新提交点)git branch king 提交点 # 创建⼀个king的分⽀(指定提交点)git branch -d -r <branchname> # 删除远程分⽀,删除后还需推送到服务器git push origin:<branchname> # 删除后推送⾄服务器git branch -d king #删除king分⽀git checkout king #切换⾄king分⽀git checkout mastergit merge king #合并分⽀king和主⼲master,合并后的提交点属于主⼲master本地分⽀重命名git branch -m <oldbranch> <newbranch> #重命名本地分⽀ 查看本地和远程的所有分⽀git branch -a # 查看本地和远程的所有分⽀ 查看远程所有分⽀git branch -r # 查看远程所有分⽀重命名远程分⽀:1、删除远程待修改分⽀2、push本地新分⽀到远程服务器head节点代表最新的commit 显⽰head 信息git show HEAD回退:git reset 选项提交点(选项:--hard表⽰全恢复提交点:可⽤ID或标签)git reset --hard v0.1查询所有提交点git reflog #回退后需要反悔的话,需要通过此命令查找到所有操作的提交点合并分⽀的起始点(不推荐)git checkout mastergit rebase reking #合并分⽀reking和主⼲master,合并后的提交点属于主⼲masterclone 克隆远程⽂件git clone "远程地址" "本地⽂件名称" push 推送本地修改分⽀⾄远程git仓库git push -u origin feature-wxDemo fetch与pullfetch是将远程主机的最新内容拉到本地,不进⾏合并git fetch origin master pull 则是将远程主机的master分⽀最新内容拉下来后与当前本地分⽀直接合并 fetch+mergegit pull origin master如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。
git checkout 命令详解在日常的git操作中,git checkout——检出,是我们的常用命令。
最为常用的两种情形是创建分支和切换分支。
在下面的命令中,使用了一些简写,在这里说明一下:git st # git statusgit ci # git commitgit br # git branchgit co # git checkoutgit mg # git mergegit line # git log --oneline当然,你也可以直接在git中敲命令,将这些简写添加到git 配置中git config --global -e然后,可以插入下面的配置:[alias]st = statusco = checkoutbr = branchmg = mergeci = commitmd = commit --amenddt = difftoolmt = mergetoollast = log -1 HEADcf = configline = log --onelinelatest = for-each-ref --sort=-committerdate--format='%(committerdate:short) %(refname:short)[%(committername)]'ls = log--pretty=format:\"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green)[%cn]\" --decorate --date=short hist = log--pretty=format:\"%C(yellow)%h %C(red)%d %C(reset)%s %C(green)[%an] %C(blue)%ad\" --topo-order --graph--date=shorttype = cat-file -tdump = cat-file -p这样,你也就可以使用这些简写的命令咯。
GIT ANG REPOUSAGE1 git command1.1 git add∙git add . #将文件先暂存到staging area, stages new and modified, without deleted∙git add -A #states all∙git add -u #states modified and deleted, without new∙git add -i #进入互动模式∙git add filename #新增一个文件∙git add modify-file #修改过得文档也要加add,不然在commit时要加-a 1.2 git rm #删除文件∙git rm filename1.3 git mv #修改文件名,或搬移目录∙git mv filename newfilename1.4 git status #查看状态1.5 git commit∙git commit∙git commit -m 'commit message'∙git commit -a -m "message"∙git commit -a -v #-v查看修改的内容1.6 git branch∙git branch #列出所有的分支∙git branch new-branch #产生新的分支∙git branch new-branch master #由master产生新的分支∙git branch -d branch #删除分支∙git branch -D branch #强制删除分支∙git checkout -b new-branch #产生新分支并切换过去∙git branch -r #列出所有repository branch∙git branch -a #列出所有分支1.7 git checkout∙git checkout branch-name #切换到branch-name∙git checkout master #切换到master∙git checkout -b new-branch master #从master建立新的分支,并切换过去∙git checkout -b new-branch #由当前分支建立新分支∙git checkout -b new-branch origin #由origin建立分支∙git checkout filename #还原状态到repository状态∙git checkout HEAD . #将所有文件都checkout出来∙git checkout xxxx . #xxxx是commit的编号的前四位,将xxxx编号的版本checkout出来∙git checkout – * #恢复上一次commit的状态1.8 git diff∙git diff master #与master对比看哪些文件不同∙git diff –cached #比较staging area与repository∙git diff tag1 tag2 #tag1与tag2比较∙git diff tag1:file1 tag2:file2 #tag1的file1与tag2的file2比较∙git diff #当前与staging area比较∙git diff HEAD #当前与repository比较∙git diff new-brach #当前与new branch的比较∙git diff –stat1.9 git tag∙git tag v1 ebff #为commit ebff810c462234433434323334343设置标记v1 ∙git tag 版本1 ebff #tag可以为中文∙git tag -d 版本1 #删除标记版本11.10 git log∙git log #列出所有log∙git log –all∙git log -p #列出log及修改的内容∙git log -p filename #将filename的log及修改内容列出来∙git log –name-only #列出哪些文件被修改∙git log –stat –summary #列出各个版本间的改动及行数∙git log filename #这个文件的所有log∙git log directory #这个目录的所有log∙git log -S'FUNC()‘ #列出由FUNC()这个字符串的log∙git log –no-merges #不要列出merge的log∙git log –since="2 weeks ago" #列出最后两周的log∙git log –pretty=oneline∙git log –pretty=short1.11 git show∙git show ebff #显示commit ebff810xxxxxxxxxxx的内容∙git show v1 #显示tag v1的修改内容∙git show v1:hello.txt #显示tag:v1的hello.txt文件修改内容∙git show HEAD #当前版本的修改文件∙git show HEAD^ #前一版本所有修改的文件∙git show HEAD~4 #前4版本的修改文件1.12 git reset∙git reset –hard HEAD^ #还原到前一版本∙git reset –soft HEAD~31.13 git grep∙git grep "hello" v1 #查找tag:v1中是否由“hello"字符串∙git grep "hello"1.14 git stash∙git stash #放进暂存区∙git stash list #列出暂存区的文件∙git stash pop #取出最新的一笔,并移除∙git stash apply #取出但不移除∙git stash clear #清除暂存区1.15 git merge∙git merge #合并1.16 git blame∙git blame filename #列出此文件所有commit的记录1.17 git ls-files∙git ls-files -d #查看已删除的文件∙git ls-files -d | xargs git checkout – #将已删除的文件还原1.18 git revert∙git revert HEAD #回到前一此commit的状态∙git revert HEAD^ #回到上上一次的状态1.19 git remote∙git remote∙git remote add new-branch /project.git #增加远程repository的branch∙git remote show #列出现在由多少repository∙git remote rm new-branch #删除服务器上的新分支∙git remote update #更新所有repository branch1.20 git fetch∙git fetch origin1.21 git push∙git push origin:heads/xxx-branch2 repo command2.1 repo init∙repo init -u URL #在当前目录安装repo,该命令创建一个.repo文件夹,文件夹中包含一些git仓库,这些仓库包含着repo源代码何manifest文件。
Git常⽤命令之stash简单使⽤需求场景:两个分⽀branch new 和 branch old ⼀⽼的⼀新的两个分⽀。
在new分⽀开发⼀部分突然中途插⼊ old分⽀要做⼀些功能修复直接切换分⽀会导致new分⽀所做修改被带⼊打开的old分⽀。
---我们想要的效果:1:new 分⽀的修改不带⼊old分⽀2:old分⽀处理完成后还可以切回new分⽀继续进⾏开发任务⽅案⼀:直接将new分⽀的修改commit后切换到old分⽀即可(这种⽅式更适⽤与⼩阶段性开发完毕情况)⽅案⼆:使⽤git stash命令。
(适⽤于开发⼀半,中途切换)⽤法⼀:在new分⽀下使⽤git stash这样会将 new分⽀的修改暂存起来但是没有保存修改信息如果有多条stash则难以区分⽤法⼆:在new分⽀下:使⽤git stash save "message信息" 暂存new分⽀修改的同时⾃⼰可以添加这次暂存修改的备注------查看当前分⽀有多少stash暂存列表git stash list----在有暂存的情况下,取出最近⼀次的暂存修改以在本次修改的基础上继续⼯作git stash pop ---这种⽅式会在取出最近⼀次暂存修改后删除 stash或者git stash apply stash@{0}--这种⽅式在取出最近⼀次暂存后不会删除该暂存。
----在有多个暂存的情况下,取出历史某⼀个暂存的修改以在那次修改的基础上继续⼯作git stash apply stash@{x} 注:x为 git stash list 查到的,x为0时为最近⼀次的修改暂存。
----在两个暂存之间切换⼯作注意要rollback后再取出,否则会报错,导致暂存取出失败。
报错⽰例(error: Your local changes to the following files would be overwritten by merge:cib-cls/src/main/resources/application-dev.yamlPlease commit your changes or stash them before you merge.Aborting)---清除所有的git stashgit stash clear。
GET的常⽤命令1.GIT的全局配置$ git config - l 查看配置信息$ git config --global -l 查看全局配置信息2.配置:$ git config --global 'xxx'$ git config --global user.eamil 'xxx'clear : 清屏3.创建仓库:$ git init //会⽣成⼀个隐藏⽂件夹(.git : 暂存区和历史区等的信息)4.提交到暂存区:$ git add xxx 把某个⽂件提交到暂存区$ git add . 把当前仓库中的所有修改了的⽂件提交到暂存区$ git status 查看当前⽂件的状态(红⾊:在⼯作区,绿⾊:暂存区,⽆:历史区)$ git rm -- cached xxx :将⽂件xxx从暂存区移除5.提交到历史区$ git commit -m‘xxxx’ //xxx:描述$ git log //查看历史区信息$ git reflog //查看历史版本信息(包含回退的版本)6.版本回退:$ git reset --hard xxx //xxx为要回退到的版本号7.上传到中央仓库:$ git remote -v // 查看本地仓库与中央仓库的连接状态$ git remove add origin [GIT仓库地址]$ git remote rm origin //取消与中央仓库的关联 orgin为名字$ git pull origin master //从中央仓库拉去数据(需要输⼊github密码)$ git push origin master // 上传到中央仓库$ git clone [中央仓库地址] [别名]。
本地分支解析git 通过可变指针来实现对提交数据的历史版本的控制,每当我们提交新的更新,当前分支(设为master)则指向最后一个提交更新A,而最后一个提交对象则存在一个指针指向前一次的提交更新Q。
如果我们创建一个新的分支,child,它和master共同指向A,这时,如果我们向child分支提交更新B,我们会发现child 指向B,而master依然指向A。
无论我们在child分支进行了任何开发,只要回到master分支,就能恢复到更新A的数据状态了。
在图片里,我们还注意到有一个head指针,一般来说,它会指向我们目前所在的工作分支。
现在它指向了我们的master分支,意思是master是我们目前的工作分支。
一旦提交更新,就会在master分支上提交。
现在,让我们看看与git 分支有关的操作命令:1. git branch [option] [name]如果不使用任何参数,它可以用来查看所有的分支,而在分支名前有*标记的则为主分支,如果加上name为创建新分支,,如git branch child,则会创建一个名为child 的分支,此外,它有一些常用的参数:2. git checkout [name]切换到对应的分支,对于上图,如果我们是使用git checkout child,我们的head 指针就会指向child分支了。
这时候,如果我们提交新的更新D,我们会发现:我们的D指向C,而C依然指向A,也就是说,以后我们在child分支上做的任何更新,都不会对master分支所在的之路造成任何影响!一旦使用了checkout命令,我们还会发现,不仅head指针会指向新的分支,而且当前工作目录中的文件也会换成了新分支对应的文件了。
此外,我们还可以使用git checkout -b [name]命令,它会新建一个分支,并自动将当前的工作目录切换到该分支上。
3. git merge [name]合并分支,有的时候,我们创建次要分支,可能是为了修改原有程序的bug,或为了拓展新的功能,这时候如果我们想把次要分支的修改何并进主分支中,我们可以使用git merge命令来实现。
git使用记录
1.生成密匙:
ssh-keygen-t rsa几次回车,在.ssh/下的id_rsa.pub即为密匙文件;
2.获取git分支:
A.远程获取:(路径须绝对路径)
git clone git@192.168.1.50:/home/git/repositories/A20-Android4_2.git.
(注意在最后加个点是为了避免clone时在当前目录下新建一个git目录)
B.本地获取:(路径为相对路径即可)
git clone git@192.168.1.50:A20-Android4_2.git.
C.查看所获取分支的路径:
git remote-v
D.切换到某个分支:
git checkout$branchname
3.分支的新建与删除:
A.新建:
git branch$branchname(注意在哪个分支上执行就是基于哪个分支新建)
git push origin$branchname(推到服务器仓库)
B.删除:
git branch-D$branchname(删除本地的分支)
git branch-rd origin/$branchname(删除服务器仓库分支)
git push origin:$branchname(注意冒号)
git remote prune origin(同步远端已删除分支)
4.修改内容查看及提交:
A.查看未提交的修改:
git status/git status.(查看修改的文件)
git diff/git diff.(查看修改的内容)
B.查看已提交修改:
git log(查看提交信息)
git whatchanged(查看每个提交修改的文件)
git diff$2$1(查看莫个"提交ID"$1的修改内容)
C.还原被修改文件:
git checkout-f*/$fileanme
D.提交修改:
git add*/$filename(将新建文件加入仓库)
git commit*/$filename-m"***"/git commit-a-m""(提交修改/提交当前所有修改,删除一个文件也可以)
git push origin$branchname
E.还原到某个提交ID前:
git reset“$提交ID”(注意避免冲突:如果本地有修改过即将还原的文件,可以先备份it,然后git checkout-f$it)
git push origin$branchname--force
git pull origin$branchname
F.提取同一仓库不同分支的修改:
git cherry-pick“$提交ID”
G.解决冲突:
git diff.
vi*/$冲突文件(注意去掉---->HEAD之类的冲突提示)
git add*/$冲突文件
git commit-c"产生冲突的$提交ID"
git push origin$branchname
H.清除当前所有修改:
git checkout-f&&git clean-df
5.忽略一些不需要管理的文件/类型:
vi.gitignore
6.一些常见的异常处理:
A.分支在别处又提交,本地提交不了:
git pull origin$branchname然后再提交;
B.新建仓库时,遇到漏提交文件:
find.-name".git*"|xargs rm-rf{}
7.打git patch:
patch-p1<$patchfile.patch(用过可以,但是不能新建.a/.so等库文件)或者
git apply$patchfile。