玖叶教程网

前端编程开发入门

码农必备:从入门到精通的Git常用命令手册

背景

  • Git是一个开源的分布式版本控制系统,被广泛用于跟踪和管理源代码的变更。它由Linux创始人林纳斯·托瓦兹于2005年创造。
  • Git的主要目标是提供速度、数据完整性和对非线性工作流程(如多个同时并行工作的分支)的支持。
  • 以下是关于Git的一些重要特性:
1.分布式架构:与集中式版本控制系统不同,每个开发者的电脑上都有一个完整的仓库副本,包含所有的文件和历史记录。这使得开发者在没有网络连接时也能进行工作,并且可以减少对中央服务器的依赖。

2.数据完整性:Git使用SHA-1哈希来标识对象(如提交、文件内容等),确保了数据的完整性和一致性。

3.分支和合并:Git的一个核心特性是它对分支的处理。创建、删除和切换分支的操作都非常快速和轻量级。同时,Git的合并操作也设计得很好,保证了在并行开发过程中的效率。

4.性能:Git优化了许多操作以提高性能,比如通过压缩数据存储和传输、延迟推送等方式。

5.安全性:Git的设计注重安全性,比如通过权限管理和加密技术保护数据。

6.灵活性:Git支持多种工作流程,可以适应不同大小和类型的项目。

git常用十二命令集

1.git init:在当前目录下创建新的Git仓库。

2.git clone [url]:克隆(即下载)一个项目和它的整个代码历史。

3.git add [file]:将文件添加到暂存区。

4.git commit -m "[message]":提交暂存区的文件变动到仓库中,并附加上修改信息。

5.git status:查看仓库当前的状态,显示你有文件被修改但还未提交。

6.git diff:查看执行git status的结果的详细信息。

7.git log:查看所有提交记录。

8.git branch:列出所有本地分支。

9.git checkout [branch-name]:切换到指定分支并更新工作区。

10.git merge [branch]:将指定分支的历史变动合并到当前分支。

11.git pull:获取并合并远程仓库中的数据到本地。

12.git push [remote-name] [branch-name]:将本地的修改推送到远程仓库。

git分支管理

  • 查看分支: git branch -a
  • 创建分支: git branch name
  • 切换分支: git checkout name
  • 创建并切换: git checkout -b name
  • 合并某分支到当前分支: git merge name
  • 删除分支: git branch -d name

git stash

当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。该命令将保存本地修改,并恢复工作目录以匹配头部提交。

# 保存当前未commit的代码
git stash

# 保存当前未commit的代码并添加备注
git stash save "备注的内容"

# 列出stash的所有记录
git stash list

# 删除stash的所有记录
git stash clear

# 应用最近一次的stash
git stash apply

# 应用最近一次的stash,随后删除该记录
git stash pop

# 删除最近的一次stash
git stash drop
  • 当有多条 stash,可以指定操作stash,首先使用stash list 列出所有记录:
$ git stash list
stash@{0}: WIP on ...
stash@{1}: WIP on ...
stash@{2}: On ...
  • 应用第二条记录,pop,drop同理:
$ git stash apply stash@{1}

git revert

将现有的提交还原,恢复提交的内容,并生成一条还原记录。

  • revert普通提交
git revert <commitHash>
  • revert合并提交

主要针对merge的分支合并提交,使用上会有些不一样

-m 后面要跟一个 parent number 标识出"主线",一般使用 1 保留主分支代码。

git revert -m 1 <commitHash>

查看tag

// 查看tag,列出所有tag,列出的tag是按字母排序的,和创建时间没关系。
$ git tag
v0.1

//查看指定版本的tag,git tag -l “v1.4.2.**”
$ git tag -l 'v1.4.2.*'
v1.4.2.1

//显示指定tag的信息
$ git show v1.4
tag v1.4
Tagger: Scott Chacon <[email protected]>
Date:   Mon Feb 9 14:45:11 2009 -0800

创建tag

//创建轻量级tag:这样创建的tag没有附带其他信息
git tag v1.0

//带信息的tag:-m后面带的就是注释信息,这样在日后查看的时候会很有用
git tag -a v1.0 -m 'first version'

共享tag

//我们在执行 git push 的时候,tag是不会上传到服务器的,比如现在的github,创建 tag 后 git push ,在github网页上是看不到tag 的,为了共享这些tag,你必须这样:
git push origin v1.0

//将所有tag 一次全部push到github上。
git push origin --tags

删除tag

//删除本地tag
git tag -d v1.0

//删除github远端的指定tag
git push origin :refs/tags/v1.0.0

创建基于指定tag的分支

git checkout -b test v0.1.0

git小技巧

  • git撤销本地修改
git reset--hard origin/master
git pull
  • git回退到前n个版本
git reset --hard HEAD~n

分支合并git merge --no-ff

在做项目开发时会用到分支,合并时采用以下步骤:

$ git checkout feature-branch
$ git rebase master
$ git checkout master
$ git merge --no-ff feature-branch
$ git push origin master

往期文章

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言