当前位置: 首页>数据库>正文

常用git命令

Git树是一个版本控制系统中的数据结构,它记录了项目的历史变化。你可以把它想象成一棵树,树的每个节点代表着一个提交,也就是项目的一个版本。每个提交都包含着对项目文件的一系列修改,以及指向其父节点(上一个版本)的链接。这些提交节点以及它们之间的链接形成了一个有向无环图(DAG),我们通常把它称为“提交树”或“提交图”。

1.第一次初始化

  • git init: 初始化一个新的Git仓库。
  • git add .: 将当前目录下的所有文件添加到暂存区。
  • git commit -m ‘first commit’: 提交暂存区中的文件到版本库,并附上提交消息为“first commit”。
  • git remote add origin git@github.com:帐号名/仓库名.git: 添加远程仓库,命名为origin,地址为git@github.com:帐号名/仓库名.git。
  • git pull origin master: 从远程仓库的master分支拉取最新的更改到本地仓库。
  • git push origin master: 将本地提交推送到远程仓库的master分支。选项 -f 用于强制推送。
  • git clone: 克隆一个远程仓库到本地。

2.工作基本操作

  • git checkout master: 切换到主分支。
  • git fetch origin: 从远程仓库获取最新变更。
  • git checkout -b dev origin/master: 基于主分支创建名为dev的新分支,并将其设置为跟踪远程的master分支。
  • git add .: 将当前目录下的所有修改添加到暂存区。
  • git commit -m ‘xxx’: 将暂存区的文件提交到本地仓库,并附上提交消息为'xxx'。
  • git fetch origin: 从远程仓库获取最新变更。

3.初始化仓库

git init

4.查看仓库当前状态

git status

5.文件相关操作

1) 将文件添加到仓库:
  • git add 文件名: 将工作区的某个文件添加到暂存区。
  • git add .: 将当前工作区的所有文件都加入暂存区。
  • git add -u: 添加所有被跟踪的文件中被修改或删除的文件信息到暂存区,不处理未跟踪的文件。
  • git add -A: 添加所有被跟踪的文件中被修改或删除的文件信息到暂存区,包括未跟踪的文件。
  • git add -i: 进入交互界面模式,按需添加文件到缓存区。
2)将暂存区文件提交到本地仓库:
  • git commit -m “提交说明” 将暂存区内容提交到本地仓库
  • git commit -a -m “提交说明” 跳过缓存区操作,直接把工作区内容提交到本地仓库
3)比较文件异同
  • git diff: 比较工作区与暂存区的差异。
  • git diff 分支名: 比较工作区与指定分支的差异,远程分支使用remotes/origin/分支名表示。
  • git diff HEAD: 比较工作区与最新提交的内容的差异。
  • git diff 提交id 文件路径: 比较工作区某文件当前版本与历史版本的差异,提交id是目标版本的标识。
  • git diff –stage: 比较工作区文件与上次提交的差异(1.6版本前用–cached)。
  • git diff 版本TAG: 比较从某个版本后的所有改动内容。
  • git diff 分支A 分支B: 比较分支A和分支B之间的差异,也支持比较两个TAG。
  • git diff 分支A…分支B: 比较两分支在分叉后各自的改动。

另外:如果只想统计哪些文件被改动,多少行被改动,可以添加 –stat 参数

6.查看历史记录

  • git log: 查看所有提交记录,包括SHA-A校验和、作者名称、邮箱、提交时间和提交说明。
  • git log -p -次数: 查看最近指定次数的提交记录,并显示每次提交的详细内容变更。
  • git log --stat: 简略显示每次提交的内容更改。
  • git log --name-only: 仅显示已修改的文件清单。
  • git log --name-status: 显示新增、修改、删除的文件清单。
  • git log --oneline: 让提交记录以精简的一行输出。
  • git log --graph --all --oneline: 图形展示分支的合并历史,以及所有提交记录的一行输出。
  • git log --author=作者: 查询指定作者的提交记录。与grep同时使用需要添加一个--all-match参数。
  • git log --grep=过滤信息: 列出提交信息中包含指定过滤信息的提交记录。
  • git log -S查询内容: 列出提交记录中引入或删除指定内容的提交。S和查询内容之间没有空格。
  • git log fileName: 查看某文件的修改记录。

7.代码回滚

  • git reset HEAD^: 将当前HEAD指向的版本回退到上次提交的版本,但保留工作区和暂存区的修改。
  • git reset HEAD^^: 将当前HEAD指向的版本回退到上上次提交的版本,以此类推,或者使用~后跟次数指定回退的版本数。
  • git reflog: 查看引用日志,即查看当前仓库的操作记录,包括HEAD的变动。
  • git reset --hard 版本号: 将当前HEAD指向的版本回退到指定的版本号,同时重置暂存区和工作区。选项--soft表示只改变HEAD指针指向,不改变暂存区和工作区;选项--mixed表示修改HEAD指针指向,暂存区内容丢失,但工作区不变;选项--hard表示修改HEAD指针指向,暂存区内容丢失,工作区恢复至指定版本状态。

8.版本库相关操作

  • git rm 文件名: 从版本库中删除指定文件,并将删除操作添加到暂存区。
  • git rm -r --cached folder: 递归地删除 folder 文件夹及其所有内容的跟踪记录,但不会删除实际的文件。
  • git checkout -- 文件名: 将版本库中的文件替换工作区的文件,即撤销对工作区文件的修改,恢复到最近一次提交的状态。

9.远程仓库相关操作

  • 同步远程仓库:git push -u origin master
    将本地的master分支内容推送到远程仓库origin,并建立本地master分支与远程master分支的关联。

  • 本地仓库内容推送到远程仓库:git remote add origin git@github.com:帐号名/仓库名.git
    将本地仓库关联到远程仓库,命名为origin,地址为git@github.com:帐号名/仓库名.git。

  • 从远程仓库克隆项目到本地:git clone git@github.com:git帐号名/仓库名.git
    从远程仓库克隆项目到本地。

  • 查看远程库信息:git remote
    查看当前仓库配置的远程仓库信息。

  • 拉取远程分支到本地仓库:

    git checkout -b 本地分支 远程分支 # 会在本地新建分支,并自动切换到该分支
    git fetch origin 远程分支:本地分支 # 会在本地新建分支,但不会自动切换,还需checkout
    git branch --set-upstream 本地分支 远程分支 # 建立本地分支与远程分支的链接
    
  • 同步远程仓库更新:git fetch origin master
    从远程仓库origin的master分支获取最新变更,但不合并到当前分支。

10.分支相关操作

  • git checkout -b dev: 创建并切换到名为dev的新分支。
  • git branch dev: 创建名为dev的新分支,但不切换到该分支。
  • git checkout dev: 切换到名为dev的分支。
  • git branch: 查看所有分支。
合并分支:
  • git merge dev: 将名为dev的分支合并到当前分支。这种合并会产生一个新的合并提交,并且合并后的历史记录会显示分支的合并情况。
  • git merge --no-ff -m “merge with no-ff” dev: 使用普通模式合并名为dev的分支到当前分支。选项--no-ff表示禁用快速合并(Fast-forward),这样合并后的历史记录中会保留分支的信息,能够清晰地看出曾经进行过合并。
删除分支:

git branch -d dev

查看分支合并图:

git log –graph –pretty=oneline –abbrev-commit

11.git相关配置

安装完Git后第一件要做的事,设置用户信息(global可换成local在单独项目生效):

  • git config --global user.name “用户名”: 设置全局Git用户名为“用户名”。
  • git config --global user.email “用户邮箱”: 设置全局Git用户邮箱为“用户邮箱”。
  • git config --global user.name: 查看全局Git用户名是否配置成功。
  • git config --global user.email: 查看全局Git用户邮箱是否配置成功。

其他配置相关:

  • git config --global --list: 查看全局设置相关参数列表。
  • git config --local --list: 查看本地设置相关参数列表。
  • git config --system --list: 查看系统配置参数列表。
  • git config --list: 查看所有Git的配置,包括全局、本地和系统级别的配置。
  • git config --global color.ui true: 设置全局Git颜色显示为true,即启用Git相关颜色显示。

13.撤消某次提交

  • git revert HEAD: 撤销最近的一个提交,并创建一个新的提交来反转该提交引入的更改。
  • git revert 版本号: 撤销指定版本号的提交,并创建一个新的提交来反转该提交引入的更改。

14.标签

  • git tag 标签: 在当前HEAD指向的提交上打上标签。
  • git tag: 显示所有标签。
  • git tag 标签 版本号: 给指定的commit版本添加标签。
  • git show 标签: 显示指定标签的详细信息。

15.clean

  • git clean: 命令可以用来删除当前目录下没有被 Git 管理的文件,包括编译生成的文件、临时文件等不需要的文件,提高代码仓库的整洁性。命令默认不会删除目录,只会删除文件。如果要删除目录,需要加上 -d 参数。
    -git clean -n: 查看删除文件列表
    -git clean -f -x: 命令来强制删除。

https://www.xamrdz.com/database/6dw1997261.html

相关文章: