Git命令整理

作者: 麦兜叮叮当 | 来源:发表于2017-11-07 00:07 被阅读0次

由于Git命令较多,将常使用的Git命令做一下整理与总结。

实际工作中大体也会用到这样的工作流程:
开发某个网站。
为实现某个新的需求,创建一个分支。
在这个分支上开展工作。
假设此时,你突然接到一个电话说有个很严重的问题需要紧急修补,那么可以按照下面的方式处理:

返回到原先已经发布到生产服务器上的分支。
为这次紧急修补建立一个新分支,并在其中修复问题。
通过测试后,回到生产服务器所在的分支,将修补分支合并进来,然后再推送到生产服务器上。
切换到之前实现新需求的分支,继续工作。

Git初始化设置
git config --global user.name "xxx"
git config --global user.email "519401502@qq.com"

pwd 查看当前路径

git init 将当前目录变成git可以管理的仓库

git init newrepo 指定目录变成可以管理的仓库

git add text.txt 告诉git,把text.txt文件添加到仓库。注意:每次可以多次添加。

git commit -m "update" 提交add所添加的内容到git仓库
git commit -a 跳过使用暂存区域的方式,直接提交
git commit --amend 撤销提交操作,如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样。

解决合并代码冲突:
git stash
git pull
git stash pop

git status 查看当前仓库的状态
git status -s 加了-s 参数,以获得简短的结果输出。

git branch -r 查看远程分支
git checkout -b 本地分支名x origin/远程分支名x 拉取远程分支内容

git diff --cached 已经暂存起来的文件和上次提交时的快照之间的差异。
git diff text.txt 查看做了哪些修改

git log 查看我们提交内容的历史记录
git log --pretty=oneline 查看我们提交内容的历史记录,简约出现

git reset --hard head^ 退回上个版本
git reset --hard head^^ 退回上上个版本
git reset --hard head~100 退回100次之前的版本

git rm -r --cached . 删除本地缓存,改变成未track状态。如果添加了忽略文件,通常需要执行以下这个命令才会生效。

cat text.txt 查看内容

vim text.txt 编辑text内容

git reset --hard cb926e7ea50ad11b8f9e909c05226233bf755030 退回到指定版本,序列是提交序列号

git reflog 命令输入记录

git commit --amend 修改提交说明。

git checkout -- text.txt 撤销,恢复到上个状态

把一个分支中的修改整合到另一个分支的办法有两种:merge 和 rebase。

ssh-keygen -t rsa -C "youremail@example.com" 创建id_rsa和id_rsa.pub这两个文件,这是绑定GITHUB的需要用的密钥

git add . 添加所有文件,很方便,经常使用。
git add *.c 添加以.c结尾的文件

git remote add origin git@github.com:你的账号/learngit.git 关联GITHUB。
码云版:git remote add origin git@gitee.com:liaoxuefeng/learngit.git 关联码云

git clone git@github.com:你的账号/gitskills.git 克隆github的项目到本地

git push -u origin master 把本地库上传到github,并关联github
git push -u origin master -f 强推,注意:会覆盖远程库
git push origin serverfix:server 将本地serverfix分支推送到server远程库分支上。

git push origin master 把本地库上传到github,origin表示远程库的名字,可以根据git remote -v命令查看远程库名,master表示当前本地的分支,可以根据git branch 查看。

git remote rename oldname newname 修改远程仓库名的简称

git remote -v 显示远程库地址。

git remote show [remote-name] 查看远程库信息

git pull -u origin master:master 更新代码,master是分支的名称。

git push origin clien:serverfix 将本地clien分支内容推送到远程库serverfix上。

git checkout -b dev 切换并创建本地分支到dev
git checkout -b origin/text 切换远程库分支,origin是远程库名字。

git branch (当前分支前面会标一个*号)查看分支

git checkout <name> 切换分支
git merge <name> 合并某分支到当前分支
git branch -d dev 删除dev分支
git branch -D feature-vulcan 强制删除分支
git branch -m devel develop 重命名分支。
git branch --set-upstream dev origin/dev 本地dev分支与远程库dev分支建立联系
git branch dev 创建分支
git branch -r 查看远程分支

git pull 更新代码到最新
git pull github master:text 从远程库master分支拉取数据到本地text分支
git pull gitee master 指定远程仓库名,指定本地分支。

git remote -v 查看远程库信息

git log --graph命令可以看到分支合并图
git log --oneline 简洁的日志
git log -2 显示最近两次的记录。

简单介绍一些 git log 命令支持的选项:

-p  按补丁格式显示每个更新之间的差异。
--word-diff 按 word diff 格式显示差异。
--stat  显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status   显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty    使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。
--oneline   --pretty=oneline --abbrev-commit 的简化用法。

git config --list 配置信息

git stash 存储当前工作现场
git stash list 查看工作现场
git stash apply 恢复,但是恢复后,stash内容并不删除
git stash drop 删除工作现场
git stash pop 恢复并删除

添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。

git remote -v 查看远程库详细信息,上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。

git mv README README.md 重命名。

git tag v1.0 打上标签
git tag 查看标签
git tag v0.9 6224937 指定commit id打上标签
git tag -d v0.1 删除标签
git tag -l 'v1.4.2.*' 只对 1.4.2 系列的版本感兴趣,可以运行这个命令

git show v1.4 显示v1.4版本的详细信息
git push origin :refs/tags/v1.0 从远程删除远程库中的标签
git push origin --tags 推送本地所有标签到远程库。
git push origin v1.0 默认情况下,git push 并不会把标签传送到远端服务器上,推送某个标签到远程。
git push origin --tags 一次性推送全部尚未推送到远程的本地标签

git tag -a <tagname> -m "blablabla..."可以指定标签信息;

git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;

git remote rm origin 删除关联

git push -f 强推,注意:会覆盖远程库

git config --global alias.st status 设置别名,给status设置别名为st。

git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit 查看提交历史树。

git remote set-url --push [name] [newUrl] 修改远程仓库

git tag -a [name] -m 'yourMessage' 创建带注释的tag

git reset head . 从暂存区撤销
git reset HEAD text.txt 将单个文件撤销

git push --delete origin devel 删除远程库分支
git push origin :devel 删除远程库分支serverfix - 第二种方法
git push origin text 创建远程库分支,将本地当前分支提交到远程text分支中, 远程若没有text分支,则会自动创建。

问题解决(! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@git.oschina.net:519401502/text.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:
1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容
git push -f
2,先把git的东西fetch到你本地然后merge后再push
git fetch git merge
这2句命令等价于
$ git pull

忽略某些文件上传 步骤如下:
1.cat .gitignore 先创建名为 .gitignore的文件。
2.内容对应的git过滤含义:
①:.[oa] 忽略所有以 .o 或 .a 结尾的文件
②:
~ 忽略以~结尾的文件
③:doc/*.txt 忽略 doc/ 目录下所有扩展名为 txt 的文件
④:!lib.a lib.a除外
3.gitignore 的格式规范如下:
①:所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
②:可以使用标准的 glob 模式匹配。
③:匹配模式最后跟反斜杠(/)说明要忽略的是目录。
④:要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

git reflog使用、查看历史版本记录,此命令可以救命!!当你强行切换分支但忘记提交代码时造成代码丢失,可以根据此命令回退。

最后分享一张常用命令图标(摘自网络)


2010072023345292.png

相关文章

  • Git常用命令整理

    一、Git 常用命令整理 命令 简要说明 git branch 查看本地所有分支 git status 查看...

  • Git命令整理

    由于Git命令较多,将常使用的Git命令做一下整理与总结。 Git初始化设置git config --global...

  • Git 常用命令整理

    Git 常用命令整理 Git 删除本地分支 git branch -D/-d branchID 例如 Git 批量...

  • git命令整理

    clone 克隆远程仓库init 初始化仓库remote 连接远程仓库pull 从远程仓...

  • git命令整理

    1.切换分支 git checkout 分支名 2.创建分支 git branch 分支名

  • git命令整理

    查看帮助1.git help 查看帮助文档2.git help add 查看add命令意思3.退出帮助信息按q...

  • Git命令整理

    提交流程 分支 日志 版本回退 标签 保存工作现场 最后推荐 Git阮一峰廖雪峰猴子都懂的Git欢迎指正!

  • Git 命令整理

    $ git init ...

  • git命令整理

    git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...

  • Git命令整理

    简介 Git是一款免费、开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。目前开发中大部...

网友评论

    本文标题:Git命令整理

    本文链接:https://www.haomeiwen.com/subject/dzoapxtx.html