Git常用命令
来源:互联网 发布:北京鼎泰网络推广公司 编辑:程序博客网 时间:2024/05/29 04:51
Git基本常用命令如下:
http://blog.csdn.net/xx326664162/article/details/49083121
基本命令
- mkdir XX (创建一个空目录 XX指目录名)
- pwd 显示当前目录的路径。
- git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
- git add XX 把xx文件添加到暂存区去。详情
- git add . 将所有修改过的工作文件提交暂存区
Git commit –m “XX” 提交文件 –m 后面的是注释。
git commit -a -m ‘message’ 自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add,详情
git ls-files 查看已经跟踪的文件
- cat XX 查看XX文件内容
- ssh-keygen -t rsa –C “youremail@example.com” 创建SSH Key
- git help < command> 显示command的help
- git show 显示某次提交的内容 git show $id
撤销
对未跟踪文件的删除(对该文件从来没有使用过add命令)
- git clean 命令只会移除没有忽略的未跟踪文件 详情
- git clean -f -d命令来移除工作目录中所有未追踪的文件以及空的子目录。
对工作目录的撤销(对文件修改后未使用add命令)
- git checkout - - < file> 抛弃工作目录的修改 详情
- git checkout . 抛弃工作目录修改
对暂存区的撤销(使用add命令后,未使用commit)
- git reset HEAD 撤销暂存区域的文件 详情
对版本库的撤销,使用commit后
- git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本 (如果想回退到100个版本,使用git reset –hard HEAD~100 ) 已经push到线上代码块,使用该命令会退后,在push会有冲突
- git revert [标识代码] 用一个新提交来消除一个历史提交所做的任何修改.已经push到线上代码块,使用该命令回退后,再push不会有冲突详情
- git commit - -amend 重新提交(覆盖上次的提交)
git 撤销 merging,git取消merge
- git reset –hard HEAD (or sha_1) 详情
移除和移动
- git rm XX 从已跟踪文件清单中移除,并删除磁盘上的指定文件,建议使用该命令前先备份数据详情
- git rm - -cached < file> 从暂存区域移除,文件保留在磁盘,不想让 Git 继续跟踪
- git mv file_from file_to 重命名file_from为file_to 详情
打标签
- git tag 列出已有的标签
- git tag -l ‘v1.8.5*’ 使用特定的模式查找标签
- git tag v1.4-lw 给提交打标签(轻量标签)
- git tag -a v1.4 -m ‘my version 1.4’ 附注标签
- git tag -a v1.2 9fceb02 后期打标签,要在那个提交上打标签,需要在命令的末尾指定提交的校验和(或部分校验和)
- git push origin [tagname] 共享标签 git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后必须显式地推送标签到共享服务器上
- git push origin - -tags 一次性推送很多标签
- git checkout -b [branchname] [tagname] 检出标签 在特定的标签上创建一个新分支:
变基和衍合
- git merge < branch> 合并branch分支到当前分支 三方合并
git merge < branch> - -no-ff 不要Fast-Foward合并,这样可以生成merge提交
执行merge操作后,如果有冲突,需要执行add commit进行提交- git merge -Xignore-space-change whitespace 忽略所有空白修改。详情
git rebase master 将当前分支变基到master 详情
执行rebase操作后,如果有冲突 1、解决冲突 2、git add . 3、git rebase - -continuegit rebase - -onto master server client 取出 client 分支,找出处于 client 分支和 server 分支的共同祖先之后的修改,然后把它们在 master 分支上重演一遍”详情
如下:三个分支ABC,这个命令可将分支BC之间的修改,应用到分支A上。(在使用这个命令执行这样的操作时,最好在C的分支上再创建一个分支D,这样可以保存原来的状态不丢失)
A–(删除某个功能)–B—(修复一个bug)–CD
A–(删除某个功能)–B—(修复bug)—D
|
|——–(修复bug)—–C
- git rebase master server 直接将特性分支(即本例中的 server)变基到目标分支(即 master)上。这样做能省去你先切换到 server 分支,再对其执行变基命令的多个步骤
- git mergetool 如果你想使用图形化工具来解决冲突 详情
查看提交历史
- git log 查看历史记录
- git reflog 查看历史记录的版本号id
- git log -p -2 用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交
- git log - -stat 查看每次提交的简略的统计信息
- git log - -pretty=oneline 这个选项可以指定使用不同于默认格式的方式展示提交历史,用 oneline 将每个提交放在一行显示
- git log - -pretty=oneline - -graph 结合使用时尤其有用。 这个选项graph 添加了一些ASCII字符串来形象地展示你的分支、合并历史
查看状态
- git status 查看仓库状态,详情
git status -s 详情
git stash - -all 移除每一样东西并存放在栈中
查看文件diff
- git diff < file> 比较工作目录和暂存区文件差异 (git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动 )
git diff - -staged 比较暂存区和版本库差异(查看已暂存的将要添加到下次提交里的内容,该命令的旧版:git diff - -cached,详情)
git diff < id1>< id2> 比较两次提交之间的差异
git diff < branch1>..< branch2> # 在两个分支之间比较
git diff - -stat # 仅仅比较统计信息
分支管理
如果当前分支没有提交,而切换到另外一个,则当前分支会丢失
- git branch < branch> 创建分支
- git branch < branch> < commit num>在某一次提交上创建分支
- git branch –d < branch> 删除分支
- git br -D < branch> 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
- git checkout < branch> 切换分支
- git checkout –b < branch> 创建并切换分支
- git checkout -b < new_branch> < branch> 基于branch(可以是远程分支)创建新的new_branch
- git checkout remotes/origin/dev 一般在github上克隆下来的项目都是master分支,如果想克隆其它分支(例如:dev分支),可以1、
git branch -a #查看所有分支
,2、用该命令检出remotes/origin/dev远程分支,3、在检出的远程分支上,创建一个本地分支。详情详情 - git branch -a 查看远程分支
查看分支情况
- git branch 查看分支,分支前的 * 字符:它代表现在检出的那一个分支(也就是说,当前 HEAD 指针所指向的分支)。
- git branch -v 查看每一个分支的最后一次提交
- git branch - -merged 可以过滤这个列表中已经合并或尚未合到当前分支的分支。
- git branch - -no-merged 可以过滤这个列表中尚未合并到当前分支的分支。
- git branch -vv 查看设置的所有跟踪分支与远程分支的关系
- git show-branch 可以看出分支上的递交状况
- gitk 各个分支当前状态,详细信息,只能查看当前分支以前的信息
- git log - -graph - -decorate - -all
- git branch -m devel develop 重命名本地分支devel为develop
储藏与清理
- git stash 新的储藏推送到栈上
- git stash list 查看储藏的东西
- git stash apply 将刚刚储藏的工作重新应用
- git stash apply stash@{2} 指定储藏的工作重新应用
- git stash apply - -index 文件的改动被重新应用了,暂存的文件重新暂存
- git stash - -keep-index 告诉 Git 不要储藏任何你通过 git add 命令已暂存的东西 详情
- git stash -u 储藏任何创建的未跟踪文件
- git stash branch 创建一个新分支,检出储藏工作时所在的提交,重新在那应用工作,然后在应用成功后扔掉储藏 详情
远程分支
git clone -o booyah 远程分支名字将会是 booyah/master,默认为origin/master
git clone https://github.com/xx/testgit 从远程库中克隆,创建一个指向Git服务器的 master 分支的指针,并且在本地将其命名为 origin/master(远程分支)。 Git 也会给你一个与 origin 的 master 分支在指向同一个地方的本地 master 分支(跟踪分支),这样你就有工作的基础。详情
git remote add [teamone] [URL] 将这个远程仓库命名为 teamone,将其作为整个 URL 的缩写。
- git remote 查看远程库的信息
- git remote –v 查看远程库的详细信息
- git remote show [remote] 获得远程分支的更多信息
- git remote set-head origin master 设置远程仓库的HEAD指向master分支
- git remote set-url - -push [name] [newUrl] 修改远程仓库(也可以不使用push,改变fetch和push的url)
- git ls-remote [remote] 来显式地获得远程引用的完整列表
跟踪分支
git checkout -b [branch] [remotename]/[branch] 当克隆一个仓库时,它通常会自动地创建一个跟踪 origin/master 的 master 分支。 然而,如果你愿意的话可以设置其他的跟踪分支 - 其他远程仓库上的跟踪分支,或者不跟踪 master 分支。 这是一个十分常用的操作所以 Git 提供了 –track 快捷方式:
- git checkout - -track origin/serverfix
Branch serverfix set up to track remote branch serverfix from origin.
- git checkout - -track origin/serverfix
git branch -u origin/serverfix
Branch serverfix set up to track remote branch serverfix from origin.
在分支中执行命令,设置已有的本地分支跟踪一个刚刚拉取下来的远程分支,或者想要修改正在跟踪的上游分支
推送
git push –u origin master 首次提交,把当前master分支推送到远程库,并且跟踪(如无远程主分支则创建,用于初始化远程仓库)
git push -u origin develop 首次将本地develop分支提交到远程develop分支,并且track
git push origin master Git会把master分支推送到远程库对应的远程分支上
git push origin serverfix:awesomebranch 来将本地的 serverfix 分支推送到远程仓库上的 awesomebranch 分支。(是否跟踪,待验证)
git push - -force 命令覆盖了服务器上的提交历史 (慎用)
拉取
特别注意的一点是当抓取到新的远程跟踪分支时,本地不会自动生成一份可编辑的副本(拷贝)。 换一句话说,这种情况下,不会有一个新的 serverfix 分支 - 只有一个不可以修改的 origin/serverfix 指针。
- git fetch origin 查找 “origin” 是哪一个服务器,从中抓取本地没有的数据,并且更新本地数据库,移动 origin/master 指针指向新的、更新后的位置。
git fetch <远程主机名> <分支名> 取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名
git pull 在一个跟踪分支上输入 git pull,Git 能自动地识别去哪个服务器上抓取、合并到哪个分支。
- git pull –no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
删除远程分支
- git push origin - -delete serverfix 从服务器上删除 serverfix 分支
- git push origin :serverfix 从服务器上删除 serverfix 分支 ,推送空分支相当于删除,详情
- git fetch -p 删除掉没有与远程分支对应的本地分支
- git remote prune origin 删除本地分支,这个本地分支对应的远程分支已经不在
隐藏
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
- git 常用命令
- Git常用命令
- git 常用命令
- git 常用命令
- git 常用命令
- git 常用命令
- GIT常用命令
- git 常用命令
- git 常用命令
- Git 常用命令
- git 常用命令
- Git常用命令
- Git常用命令
- git 常用命令
- Git 常用命令
- git常用命令
- git 常用命令
- Git 常用命令
- 使用 Glyphr 玩转Linux字体
- 落谷P1341无序字母对
- Mongodb学习(二)
- github(三)----------日常生活简单使用git合并分支打tag
- php无限极分类实现方法
- Git常用命令
- 关于DataStorageService
- 学习格言
- 操作系统复习1
- oracle学习之:审计
- 搜索命令
- 盒模型、内外边距和边框
- 【NOIP2016提高A组集训第4场11.1】平衡的子集
- 面向对象多方法3