首页 > 其他分享 >Git 常用命令说明

Git 常用命令说明

时间:2023-03-17 17:37:04浏览次数:50  
标签:git -- dev 说明 Git 常用命令 commit 分支

安装Git

Windows

  安装包下载地址:https://git-scm.com/download/win

  安装时,基本按默认选项,但:
  • 在Select Components页,勾选Windows Explorer integration -> Simple context menu (以及其下的两个子选项)
  • 在Adjusting your PATH environment页,勾选Run Git from the Windows Command Prompt
  • 在Configuring the line ending conversions页,勾选Checkout as-is, commit as-is

Linux - Ubuntu

  Linux安装包下载地址:https://git-scm.com/download/linux

  用命令“git --version”查看是否已安装,且版本为1.8.x或更高。若没安装或版本太低:  
sudo apt-get install git-core git-gui git-doc gitk
    再用“git --version”查一下,如果安装的不是1.8.x版本,那是不是你的ubuntu太老了?试试下面的方法:  
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

 

Windows下配置Git

安装完成后,还需要最后一步设置,在命令行输入:  
git config --global user.name "张三"
git config --global user.email "[email protected]"
git config --global push.default simple
git config --global gui.encoding utf-8   # git gui中的中文乱码
git config --global core.quotepath off  # git status显示的中文文件名乱码
git config --global alias.ci commit
git config --global alias.co checkout

 

  说明 : 配置文件在家路径下的.gitconfig 文件,(需把姓名和邮箱换成自己的用户名和邮箱)   因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。   注意:git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

设置SSH

  在Linux的命令行下,或Windos上Git Bash命令行窗口中,键入:  
ssh-keygen -t rsa -C "[email protected]"

 

  然后一路回车。生成ssh key pair。   把其中公钥的内容复制到Git Server上。具体方法是:   在ssh下输入以下命令即可显示ssh公钥的内容:  
cat ~/.ssh/id_rsa.pub

 

  打开Git服务器网页:http://gitlab.corp.test.com/profile/keys,点击“add new”,然后把刚才ssh公钥id_rsa.pub的内容paste进去。

gitlab备份管理

  gitlab备份,同步到备份服务器   备份gitlab
10 2 * * * /usr/bin/gitlab-rake gitlab:backup:create &> /dev/null

  同步备份到备份服务器

 
/usr/bin/rsync -avP --bwlimit=50000 /var/opt/gitlab/backups/ [email protected]::techgitlabbak

 

git概念

  • 工作区:你的一个文件夹路径便是你的工作区
  • 版本库:工作区中的.git 文件夹便是本地的版本库,中间包括了暂存区和分支内容
  • origin :远程仓库,24不关机的服务
  • HEAD:指分支当前版本的指针 说明:
  • git add : 把修改或新增的文件添加到暂存区,支持模糊匹配、文件夹
  • git reset HEAD file : 把文件file 的修改冲暂存区撤出
  • git reset --hard commit_id : 把工作区的代码回滚到commit_id 版本上^:两次之前的那次提交\HEAD~100:100次之前的那次提交
  • git reflog : 查看commit_id
  • git commit -m 'comment' : 把暂存区的文件提交到分支
  • git push origin master/branch : 把分支master/branch 上修改推送到远端,第一次的时候加上 -u 参数,建立本地分支和远程分支之间的关系
  • git checkout file : 从远端上拿到file 文件覆盖工作区的file,会丢失工作区该文件的修改
  • git diff git diff HEAD -- file:比较工作区和暂存区里文件的变化
  • git diff HEAD origin/dev : 比较工作区和远端服务器里文件的变化
  • git status:查看工作区的状态
  • git pull:从远端服务器同步内容到工作区,同时merge 【少用】
  • git fetch :从远端服务器同步内容到工作区
  • git merge branch:把分支branch merge到所在的分支上
  • git mv old-filename new-filename : 移动或重命名文件
  • git rm filename: 从工作目录和 Git 代码索引中删除文件
  • git show: 显示最后一次 commit 修改的内容
  • git revert an_old_commit :这个操作,即便是这个提交已经推送到了服务器,也可以。因为这个操作不是修改历史,而是增加了新的提交,新提交反转了过去的某个提交的修改。

分支操作

说明:在git 里 分支实际上就是一个指针
  • git checkout -b dev :创建dev分支,然后切换到dev分支
  • git co -b qa origin/master : 在远端master的基础上创建一个分支qa并切换到qa分支下
  • git co dev : 切换到分支dev 上 *git branch :列出当前工作区内的分支,当前分支前面会标一个*号
  • git branch -a : 查看本地和远端的所有分支
  • git co master → git merge dev :切换到分支master 上,merge分支dev上的修改到master上
  • git branch -d dev:删除工作区的dev分支,-D : 直接删除,未合并的代码,将被丢弃!
  • git push -u origin dev : 本地分支推送到远程,首次使用的时候加上-u 参数,建立本地分支和远程分支之间的关系
  • git fetch -p 删除不存在对应远程分支的本地分支
  • git log --graph --pretty=oneline --abbrev-commit:查看分支的合并情况
  • git push origin :qa 删除远端qa 分支 说明:
    • -pretty=oneline : 显示成一行
    • – graph:查看分支合并图
    • --abbrev-commit : 把要显示SHA码显示成commit_id
  • git push origin br_name^{}:master 合并br_name 到master

Tag小结

  • git tag -a -m "注释" tag_name
  • git push origin tag tagname:可以推送一个本地标签;
  • git push origin --tags:可以推送全部未推送过的本地标签;
  • git tag -d tagname:可以删除一个本地标签;
  • git push origin :refs/tags/tagname:可以删除一个远程标签。

代码回滚

tag管理

用于查找最近的tag
git describe
把--abbrev设为0, 该命令查找最近的tag名,不需要后缀:
git describe --abbrev=0
获取当前分支的tag
git describe --abbrev=0 --tags
获取所有分支的tag
git describe --tags `git rev-list --tags --max-count=1`

 

撤销一个“已公开”的改变

  场景: 你已经执行了 git push, 把你的修改发送到了 GitHub,现在你意识到这些 commit 的其中一个是有问题的,你需要撤销那一个 commit.   方法: git revert <SHA>   原理: git revert 会产生一个新的 commit,它和指定 SHA 对应的 commit 是相反的(或者说是反转的)。如果原先的 commit 是“物质”,新的 commit 就是“反物质” — 任何从原先的 commit 里删除的内容会在新的 commit 里被加回去,任何在原先的 commit 里加入的内容会在新的 commit 里被删除。   这是 Git 最安全、最基本的撤销场景,因为它并不会改变历史 — 所以你现在可以 git push 新的“反转” commit 来抵消你错误提交的 commit。

修正最后一个 commit 消息

  场景: 你在最后一条 commit 消息里有个笔误,已经执行了 git commit -m "Fxies bug #42",但在 git push 之前你意识到消息应该是 “Fixes bug #42″。   方法: git commit --amend 或 git commit --amend -m "Fixes bug #42"   原理: git commit --amend 会用一个新的 commit 更新并替换最近的 commit ,这个新的 commit 会把任何修改内容和上一个 commit 的内容结合起来。如果当前没有提出任何修改,这个操作就只会把上次的 commit 消息重写一遍。

撤销“本地的”修改

  场景: 一只猫从键盘上走过,无意中保存了修改,然后破坏了编辑器。不过,你还没有 commit 这些修改。你想要恢复被修改文件里的所有内容 — 就像上次 commit 的时候一模一样。   方法: git checkout – <bad filename>   原理: git checkout 会把工作目录里的文件修改到 Git 之前记录的某个状态。你可以提供一个你想返回的分支名或特定 SHA ,或者在缺省情况下,Git 会认为你希望 checkout 的是 HEAD,当前 checkout 分支的最后一次 commit。   记住:你用这种方法“撤销”的任何修改真的会完全消失。因为它们从来没有被提交过,所以之后 Git 也无法帮助我们恢复它们。你要确保自己了解你在这个操作里扔掉的东西是什么!(也许可以先利用 git diff 确认一下)

重置“本地的”修改

  场景: 你在本地提交了一些东西(还没有 push),但是所有这些东西都很糟糕,你希望撤销前面的三次提交 — 就像它们从来没有发生过一样。   方法: git reset <last good SHA> 或 git reset --hard <last good SHA>   原理: git reset 会把你的代码库历史返回到指定的 SHA 状态。 这样就像是这些提交从来没有发生过。缺省情况下, git reset 会保留工作目录。这样,提交是没有了,但是修改内容还在磁盘上。这是一种安全的选择,但通常我们会希望一步就“撤销”提交以及修改内容 — 这就是 --hard 选项的功能。

在撤销“本地修改”之后再恢复

   

标签:git,--,dev,说明,Git,常用命令,commit,分支
From: https://www.cnblogs.com/happy-king/p/17227569.html

相关文章

  • 淘宝/天猫商品详情数据接口 API调用示例 参数说明
    item_get-获得淘宝商品详情请求示例#coding:utf-8"""Compatibleforpython2.xandpython3.xrequirement:pipinstallrequests"""from__future__importprin......
  • GitHub删除项目步骤
    删除GitHub中项目步骤1、选择要删除项目2、点击“Setting”3、一直拉到最后,选择“Deletethisrepository”4、位置①就是你的项目名称,直接复制到位置②,点击位置③,......
  • github高级搜索和快速开发
    1.打开GitHub,进行学习或范围搜索          2.快捷搜索,在目标仓库下进行快捷搜索(按T键),如搜索button.js等  3.快速定位,当我们看一段代码(具体到......
  • 用TortoiseGit上传代码到Github的步骤
    下载安装两个软件:   官方网址下载:GitforWindowshttps://gitforwindows.org/Download–TortoiseGit–WindowsShellInterfacetoGithttps://tortoisegit.o......
  • use GitHub Actions auto generator markdown file
    useGitHubActionsautogeneratormarkdownfile✅GitHubIssuesTemplate+GitHubActionsCI/CDdemosCrawlpagesandgenerateMarkdownfilesfreeCodeCamp......
  • github注册以及安装教程
    github注册以及安装教程首先,我们了解一下github.gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名gitHub。github于......
  • Git 常用命令
     【初始化】gitinitgitremoteaddoriginxxxxgitpulloriginmastergitbranch--set-upstream-to=origin/mastermastergitpull 【提交】gitadd.gitc......
  • git 的分支合并策略
    一、Git的合并策略了解完怎么合并两个文件之后,我们来看一个使用gitmerge来做分支合并。如上图,将master分支合并到feature分支上,会新增一个commit节点来记录这......
  • PebbleTemplates 模版解析处理简单说明
    以下是一个简单的说明如何集成起来的,详细的可以阅读完整源码调用在getPebbleTemplate部分,参考处理privatePebbleTemplategetPebbleTemplate(Stringtempla......
  • tensorflow.keras.datasets 中关于imdb.load_data的使用说明
    python深度学习在加载数据时(num_words=10000)所代表的意义首先写一段深度学习加载数据集的代码:fromkeras.datasetsimportreuters(train_data,train_labels),(test_dat......