阅读 262

git 基本操作指令(git常用命令详解)

单人团队 Git 基操

《Git 团队协作 - 第五章》笔记

image.png

创建 git 版本管理的项目

  • 初始化新的项目

 mkdir learning-git-for-teams  cd learning-git  git init 复制代码

  • 克隆已有的项目

git clone https://gitlab.com/gitforteams/gitforteams.git

  • 应该养成经常使用 status 命令的习惯,就像在文 字处理程序中使用保存那么频繁。

git status

  • 将仓库中所有文件添加至暂存区

git add --all

  • 将所有暂存的文件提交至仓库

git commit -m "Initial import of all project files."

日志输出

  • log 命令将会按时间倒序输出仓库中提交消息的完整历史记录

git log

  • 最近提交的快速列表

git log --oneline

分支管理

image.png

  • 列出本地分支 git branch --list

  • 列出所有分支 git branch --all

  • 列出远程分支 git branch --remotes

  • 获取更新的列表和所有远程分支的内容 git fetch

  • 使用 checkout 命令切换分支 git checkout --track origin/video-lessons

  • 创建一个新的开发分支

 git checkout master  git branch 1-process_notes  git checkout 1-process_notes 复制代码

推荐一行式

git checkout -b 1-process_notes master 复制代码

在仓库中添加更改

  • Git 中的更改必须先进行暂存,然后再保存至仓库

image.png

  • 将选中的已更改文件添加至你的 Git 仓库

git add README.md process-diagram.png

git add branch-naming-rules.png

  • 添加指定路径中的所有文件

git add <*directory_name*>/*

  • 添加特定扩展名的所有文件

git add *.svg

  • 添加编辑过(或修改过)的文件

git add --update

  • 想要更加粗放一些,可以添加 --all 参数,添加所有变更的文件,这是一个非常贪婪的命令!在使用前,应该检查即将添加的文件的列表

git status git add --all 复制代码

  • 交互式地添加到你的 Git 仓库

git add --patch <filename>

移除添加的文件

git reset 可以从暂存区移除添加的文件

$ git status     On branch master     Changes to be committed:      (use "git reset HEAD <file>..." to unstage)            modified:   ch05.asciidoc $ git reset HEAD ch05.asciidoc     Unstaged changes after reset:     M       ch05.asciidoc 复制代码

git 忽略文件

各个项目的推荐配置可查看 gitignore.io,输入项目类型,会自动生成 .gitignore 文件。

  • 全局配置忽略文件规则

image.png

# 指定全局配置文件的路径 $ git config --global core.excludesfile ~/.gitignore # 然后编辑其中的路径配置 复制代码

  • 项目配置忽略文件规则(推荐)

    • (1) 在项目根目录创建一个名为 .gitignore 的文件。

    • (2) 每行一个文件名,写上所有你一定不希望 Git 添加到仓库中的文件。你可以使用确切的

    • 文件名或通配符(如 *.swp)。 (3) 使用 add 和 commit 命令将 .gitignore 文件添加到你的仓库。

展示单个提交详情

使用 show 命令显示单个提交的日志消息和文本 diff $ git show fa04c30

commit fa04c309e3bb8de33f77c54c1f6cc46dc520c2ca Author: emmajane <emma@emmajane.net> Date:   Sat Oct 25 12:44:39 2014 +0100    Initial import diff --git a/ch05.asciidoc b/ch05.asciidoc new file mode 100644 index 0000000..8f82732 --- /dev/null +++ b/ch05.asciidoc @@ -0,0 +1,867 @@ + +=== Verifying Git + +Before we dive into using Git, you'll want to check and see which version is installed. For our purposes, Gi [etc] 复制代码

标签管理

  • 为某个提交对象添加一个新的标签 import

$ git tag import *fa04c30*

  • 列出所有标签

$ git tag

  • 查看带标签的提交

$ git show *import*

远程连接管理

  • 列出连接至你当前仓库的远程仓库

    $ git remote --verbose or $ git remote -v

  • 添加新的远程仓库连接

$ git remote add <别名> <远程仓库地址>

  • 使用 push 命令上传分支

$ git push

在没有上游分支时,你将会得到一条错误消息

fatal: The current branch 1-process_notes has no upstream branch To push the current branch and set the remote as upstream, use          git push --set-upstream origin 1-process_notes 复制代码

所以一般需要设置一个默认的上游远程连接

  • 在上传本地分支时设置上游分支 git push --set-upstream my_gitlab 1-process_notes

一套简单的 GitFlow

  • 将工单分支并入主分支

 git checkout master  git merge 1-process_notes 复制代码

如果执行合并,可能会弹出一个需要编辑的提交信息,一般使用默认的信息即可

  • 再将合并的推送到远程分支

$ git push --set-upstream my_gitlab master

  • 删除这个分支的本地副本

$ git branch --delete 1-process_notes

  • 一并删除不再需要的远程分支

$ git push --delete *my_gitlab 1-process_notes*

总结

命令用途
git clone URL下载一份远程仓库的副本
git init将当前目录转换成一个新的 Git 仓库
git status获取仓库状态报告
git add --all将所有修改过的文件和新文件添加至仓库的暂存区
git commit -m "message"将所有暂存的文件提交至仓库
git log查看项目历史
git log --oneline查看压缩过的项目历史
git branch --list列出所有本地分支
git branch --all列出本地和远程分支
git branch --remotes列出所有远程分支
git checkout --track remote_name/branch创建远程分支的副本
git checkout BRANCH切换到另一个本地分支
git checkout -b branch branch_parent从指定分支创建一个新分支
git add filename(s)仅暂存并准备提交指定文件
git add --patch filename仅暂存并准备提交部分文件
git reset HEAD filename从暂存区移除提出的文件修改
git commit --amend使用当前暂存的修改更新之前的提交,并提供一个新的提交消息
git show commit输出某个提交的详细信息
git tag tag commit为某个提交对象打上标签
git tag列出所有标签
git show tag输出所有带标签提交的详细信息
git remote add remote_name URL git push创建一个指向远程仓库的引用
git remote --verbose将当前分支上的修改上传至远程仓库,并列出所有可用远程连接中 fetch 和 push 命令使用的 URL
git push --set-upstream remote_name branch_local branch_remote将本地分支的副本推送至远程服务器
git merge branch将当前存储在另一分支的提交并入当前分支
git push --delete remote_name branch_remote在远程服务器中移除指定名称的分支

下面是在本章中列出的最佳实践。

  • 总是在开始工作前定义好你要做的事情。这将会帮助你决定分支的名称,以及你想要从 哪个分支开始工作。

  • 当你在自己的分支上进行修改时,可以将其中一些修改或所有修改添加至暂存区。这能 够帮助你确保一个提交只包含相关的工作。

  • 无论你是在本地新建仓库还是克隆一个仓库,你总是可以在代码托管系统上创建一个新 的项目,然后通过在本地仓库中添加一个新的远程来上传你的工作。

  • 清理任务应该在你完成每行工作后进行。你可以将工单分支并入主分支,然后删除分支 的本地和远程副本。


作者:snoopylion
链接:https://juejin.cn/post/7035565637124489246


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐