代码编织梦想

一、git是什么,⽤来做什么

git是分布式版本控制系统,⽤来进⾏版本管理

⼆、git有什么特点

  • git VS svn git是分布式,svn是集中式。分布式版本系统的最⼤好处之⼀是在本地⼯作完全不需要考 虑远程库的存在,也就是有没有联⽹都可以正常⼯作,当有⽹络的时候,再把本地提交推 送⼀下就完成了同步,⽽SVN在没有联⽹的时候是拒绝⼲活的!
  • git有暂存区的概念,svn没有
  • git 跟踪并管理的是修改,⽽⾮⽂件

三、git如何使⽤

1. 创建版本库

git init

git init 会在当前⽂件夹下⽣成⼀个.git⽂件夹,也叫做git版本库,⽤来跟踪管理版本

2. 将本地⽂件添加到git版本库

⼯作区(Working Directory)

电脑上能看到的⽬录

版本库(Repository)

⼯作区中有⼀个隐藏⽬录.git,这个不算⼯作区,⽽是Git的版本库 Git版本库⾥存了很多东⻄,其中最重要的就是暂存区(Stage),还有Git⾃动创建的master分⽀,以及 指向master的指针HEAD

git status
git add .
git commit -m "commit message"

git add 将⽂件修改添加到暂存区

git commit 提交更改,将暂存区的所有内容添加到当前分⽀

3. 添加远程库

git remote add origin git@server-name:path/repo-name.git
git remote add origin git@server-name:path/repo-name.git

必须给远程库⼀个名字,origin 远程库的名字,也可以设置为其他

将本地库的内容推送到远程

git push -u origin master
git push --set-upstream origin master

-u 将本地master分⽀和远程的master分⽀关联起来

4. 删除远程库

git remote rm origin

此处的'删除'其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库

5. 从远程库克隆

git clone git@server-name:path/repo-name.git

Git⽀持多种协议,包括https/ssh,我们⼀般都是使⽤ssh,因为https除了速度慢以外,每次推送都必 须输⼊⼝令

6. 撤销修改

1)撤销⼯作区中⽂件的修改(还未添加到暂存区)

git checkout -- file

2) 撤销暂存区中⽂件的修改(还未提交到远程库)

git reset HEAD file

3)撤销远程库中⽂件的修改(版本回退)

git log
git reset --hard commit_id
git revert HEAD //撤销前⼀次commit
git reset --hard HEAD^ //回退到上⼀个版本

git reset --hard HEAD^ //回退到上⼀个版本。

git log 查看提交历史,以确定回退到哪个版本

git reflog 查看命令历史,以确定回到未来的哪个版本

4)git reset VS git revert

1. git reset 是删除指定的 commit;git revert 是⽤⼀个新的 commit 来回滚之前的 commit

2. git reset 是将 HEAD 指针向后移动了⼀下;git revert 是 HEAD 指针继续向前

7. 分⽀管理

1) 查看当前分⽀

git branch

2) 创建分⽀

git branch <name>

3) 创建+切换分⽀

git checkout -b <name>
git switch -c <name>

4) 切换分⽀

git checkout <name>
git switch <name>

5) 合并分⽀

git merge <branchName> //合并指定分⽀到当前分⽀,并⾃动创建新的commit提交
git merge --no-commit <branchName> //合并指定分⽀到当前分⽀,但不要进⾏新的提交

6) 查看分⽀合并图

git log --graph

7) 删除分⽀

git branch -d branchA //删除本地分⽀
git push origin --delete branchA //删除远程分⽀

8. 基本操作

git stash //将当前⼯作区存储起来
git stash list //查看stash list
git stash pop //恢复⼯作区
git cherry-pick <commit> //将提交的commit复制到当前分⽀,避免重复劳动
git cherry-pick <branch> //将另⼀个分⽀复制到当前分⽀,避免重复劳动

9. 更新本地代码

1)git fetch

git fetch   //获取远程最新代码到本地,不会进⾏⾃动合并

2)git pull

git pull <远程主机名> <远程分⽀名>:<本地分⽀名>
git pull --rebase //也可以指定使⽤rebase模式进⾏合并

git pull 其实是 git fetch 和 git merge 的简写,获取远程最新代码到本地,并且和本地分⽀进⾏合并 操作。

10. 标签管理

标签与 commit 的关系,就像 IP 和域名的关系

1)创建标签

git tag <name>

2)以某个 commit 提交创建标签

git tag <name> commitId

3)查看创建的所有标签

git tag

4)查看标签信息

git show <tagname>

5)将创建的标签推送到远程

git push origin <tagname> //推送某个指定的 tag 到远程
git push origin --tags //推送所有的 tag 到远程

6)删除⼀个本地标签

git tag -d <tagname>

7)删除⼀个远程标签

1 git push origin refs:/tags/<tabname>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/apple125414/article/details/121565681

版本管理之git常用命令及使用技巧-爱代码爱编程

概述 git 作为我们常用的版本管理工具,提供了丰富的命令操作,这里记录一下开发中我们常用的命令及使用技巧,以备不时之需。 基础命令 config 配置命令 ,安装完git后,需要配置用户名和邮箱,以后的操作都是基于此

git 常用命令大全_halaoda的博客-爱代码爱编程_git命令

一、 Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:n

git常用命令及方法大全_忍者小新的博客-爱代码爱编程_git重启命令

Git常用命令及方法大全     下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。 Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库   本地分支关联远程 git branch --set-upstream-to

git常用命令详解_windy_729的博客-爱代码爱编程_git用法

文章目录 Git简介三个区主要的几个命令git commit用法git stash用法git reset用法git refloggit addgit checkoutgit checkout切换分支git che

GIT版本管理工具-爱代码爱编程

一、Git简介和软件安装 1. 简介 (1)版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历 史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件; (2)版本管理工具主要有两个作用 1. 代码版本管理  2. 多人协作开发;