git中的命令怎么使用

75次阅读
没有评论

共计 3557 个字符,预计需要花费 9 分钟才能阅读完成。

这篇文章主要讲解了“git 中的命令怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“git 中的命令怎么使用”吧!

git 的安装

本文使用的是 win7 平台。Git 可以在 Linux、Unix、Mac 和 Windows 这几大平台上安装了,可以根据自己的操作系统去官网下载。

git 常见命令

介绍命令之前先来张图吧,所有的命令都是围绕张图的

Workspace:工作区,就是你平时存放项目代码的地方

Index / Stage:暂存区,用于临时存放文件的改动,事实上它只是一个文件,保存即将提交到文件列表信息。

Repository:本地仓库区(或版本库),就是安全存放数据的位置,这里面有我们提交到所有版本的数据。其中 HEAD 指向最新放入仓库的版本。

Remote:远程仓库,托管代码的服务器。弄清楚上面四个概念,我们就开始实操吧。

通过 git init 命令创建 Git 可以管理的仓库(本地库初始化)

Administrator@XCRBHXD05IEZEVS MINGW64 /d
$ mkdir gitstudy

Administrator@XCRBHXD05IEZEVS MINGW64 /d
$ cd gitstudy/

Administrator@XCRBHXD05IEZEVS MINGW64 /d/gitstudy
$ git init
Initialized empty Git repository in D:/gitstudy/.git/

执行完这个命令我们可以看到文件下面会多一个.git 的文件夹,以后在这个文件夹下 (工作区) 的都可以被 git 管理了。

git add 命令把文件添加到暂存区。下面我们创建(echo 文件名字)一个 demo.txt 文件

$ echo   demo.txt

此时的 demo.txt 文件是带个蓝色?的,当我们执行 git add – demo.txt 后

那如果这个目录下面有几百个文件都要加到暂存区怎么办?此时可以使用 git add . 这个命令可以把当前目录下所有文件加入暂存区。

git status 查看显示工作区和暂存区的状态。

$ git status

git commit -m 提交信息描述 命令把文件添加到本地仓库。

$ git commit -m 第一次提交 
[master (root-commit) 22f0a2b]  第一次提交
 1 file changed, 1 insertion(+)
 create mode 100644 demo.txt

提交后 demo.txt 颜色是不是变绿了。

git commit -am 文件描述【am】就是【add modify】两个命令的合并。比如我们修改了两个文件 demo.txt 和 demo1.txt。这时候我们可以直接使用 git commit -am 命令

git commit -am 第三次提交

如果新增了文件,必须使用分开的命令,不能用合并命令。

git add .
git commit -m  update

回退未使用 git add(文件必须是 commit 过的)

使用 git checkout — filename(文件名)注意中间有 –

$ git checkout -- demo.txt

回退所有的文件修改使用 git checkout .

 git checkout .

已使用 git add,未使用 git commit

使用 git reset HEAD filename(指定文件名)

git reset HEAD demo.txt

回退所有文件修改 git reset HEAD

 git reset HEAD

在使用本命令后,本地的修改并不会消失,而是回到了上面 未使用 git add 缓存代码,继续使用用 git checkout — filename,就可以放弃本地修改。

已使用 git commit 未 push

git reset –hard HEAD^ 回退到上一次 commit 的状态(这个命令需谨慎执行)。HEAD^(代表上一次)或者通过 git reset –hard commitid(是版本号 可以根据 git log 查看,每次 commit 都会生成一个)

 git reset --hard HEAD^

git reset –mixed HEAD^ (–mixed 也可以省略),保留工作区,并且清空暂存区。就是回到上一次 git add 之前。

git reset HEAD^

git reset –soft HEAD^ 重置 HEAD 到指定的版本,不会修改暂存区和暂存区就是回到上一次 git commit 之前,适用于合并 commit 节点。

git reset --soft HEAD^

git revert commitid 会回退到之前的那次提交,会产生一个新的 commit,将这次回退作为一次修改记录提交,这样的好处是不修改历史提交记录。

 git revert e241441d8a85b2d89

已使用 push

git push -f 可以在本地执行以上操作后,然后强行推送到远程仓库

git push -f

删除

git rm 文件名 这个必须是 commit 之后的文件

 git rm demo.txt

git rm -f 文件名 这个执行 add 未执行 commit 可以删除

 git rm -f 4.txt

远程仓库

以上都是在本地仓库进行操作的,提交的代码别人也是看不到的,如果写着代码硬盘坏了咋办?那是不是所有的代码都没了。所以写完了代码赶紧推送到服务器上去。

添加远程库

用命令 git remote add origin git@
server-name:path/repo-name.git;关联远程仓库

关联之前肯定要在远程创建仓库

首先要到 https://github.com/ 全球最大同性 jiao 友网站上注册一个账号。已有账号的就忽略了。

接下来就是新建一个远程仓库了。

 git remote add origin git@github.com:workit1/studygit.git

关联后,使用命令 git push -u origin master 第一次推送 master 分支的所有内容。

git push -u origin master

以后,每次本地提交后可以使用命令 git push origin master 推送最新修改到远程仓库。

从远程库克隆

前面我们了解先有本地仓库,再有远程库的时候,如何关联远程库。但是一般实际开发中我们是先有远程仓库的,然后从远程库克隆。

 git clone https://github.com/workit1/gitstudy.git

分支管理

git checkout -b 创建分支名 表示创建并切换分支

Administrator@XCRBHXD05IEZEVS MINGW64 /d/gitstudy (master)
$ git checkout -b feature_a
Switched to a new branch  feature_a

基于 master 分支创建了 feature_a 分支并且切换到了 feature_a 分支。

git checkout name 或者 git switch name 切换分支

 git checkout master

git branch -a 查看所有分支,包含远程分支

git branch 查看本地所有分支

合并分支

git merge master

当有冲突的时候这里会个正在合并的状态

取消合并, 此时你如果不想合并了,可以使用 git merge –abort 取消。

git merge --abort

删除分支

删除本地分支 git branch -d name

 git branch -d feature_a

删除远程分支 git branch -D name

实际项目中如果我们需要开发一个功能完整的流程是什么样的呢?多数公司模式应该下面这样的流程吧。1. 先基于主干分支 拉出一个功能分支(feature_xx)进行开发。2. 开发完成后测试基于这个功能分支进行测试。3. 测试完成后,开发把功能分支合并到主干分支。合并代码操作如下:

先切换到主干分支(release),主干分支 git pull 拉下远程分支最新代码(可能有同事提交了新的代码)

切回到功能分支 把本地主干最新代码合(git merge)并到当前功能分支,如果合并有冲突就解决冲突后重新提交。

切换到主干分支执行 git merge 功能分支。(这一步实际工作中一般人是不能这么操作的),代码必须要先发起一个 merge request 经过代码 review 才能进行合并到主干分支的。

合并完主干分支后,功能分支就可以删除了。

感谢各位的阅读,以上就是“git 中的命令怎么使用”的内容了,经过本文的学习后,相信大家对 git 中的命令怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计3557字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)