git常用命令

git常用命令及场景



前言

记录一下git的常用命令,便于个人的日常使用以及方便需要的小伙伴查看。


一、git clone

作用:从远程仓库下载代码到本地。

二、git checkout

作用:切换分支,如果需要切换本地分支,可以结合git branch(查看分支) 命令使用。
git branch:查看本地分支,其中带*号的分支代表当前所在分支

$git branch
*master

git branch -a:查看所有分支(包括远程)
git branch -r 查看远程分支

$git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/dev
  

现在我们想把当前分支切换到远程的dev分支

$ git checkout -b dev origin/dev
Switched to a new branch 'dev'
Branch 'dev' set up to track remote branch 'dev' from 'origin'.

git checkout -b 原意是创建和新建一个分支,那就意味着也可以创建一个新的本地分支;

$ git checkout -b test master
Switched to a new branch 'test'

现在我们已经把本地分支切换到dev,如果有需要也可以切换到主分支

$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

-- 查看当前所在分支
$ git branch
  dev
* main

git 切换版本的实际应用

本地文件管理

有时候我们并没有远程仓库。只是想对本地的文件进行版本管理,方便记录修改的内容。

1.创建一个测试用的文件目录
原始文件
2.初始化本地git仓库,并把文件提交到本地

#初始化一个空的git仓库
$ git init
Initialized empty Git repository in E:/git_branch_test_dir/.git/

#把仓库中的数据添加到暂存区
$ git add .
#提交单本地仓库
$ git commit -m '初始化文件'
[master (root-commit) 2bced07] 初始化文件
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 demo1.txt
 create mode 100644 demo2.txt

文件提交完成
3.创建一个新的分支
$ git checkout -b test master
Switched to a new branch ‘test’

4.在分支中修改文件demo1.txt
修改文件内容
5.切换分支
注意:此时我们并没有提交修改内容,如果现在直接修改分支会把修改的内容一并切换到分支中去。


$ git status
On branch test
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   demo1.txt

no changes added to commit (use "git add" and/or "git commit -a")

如果不需要把当前分支的内容带到其他分支,可以采用下面方法:

  • 方法一:
    • 把文件进行提交到当前分支
$ git add demo1.txt

$ git commit -m '提交demo.txt'
[test 69cbb7a] 提交demo.txt

 1 file changed, 1 insertion(+)

此时在切换分支,就不会把当前未提交的内容带到其他分支中去了。

  • 方法二:
    • 通过git stash命令

但是,有时候我们并不想产生这么多的提交命令,此时可以通过 git stash 命令把修改放到栈中去

git stash
Saved working directory and index state WIP on test: 2bced07 初始化文件

git checkout master
Switched to branch 'master'

此时文件同样不会被带到其他分支去。但是当我们在切换回test分支时,发现demo1.txt中没有我们先前修改的文件,此时我们需要stash pop 命令重新恢复数据。

$ git stash pop
On branch test
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   demo1.txt

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (73d0200407143e676a0dda5a7f0aeff1f59a133a)

恢复后的文件

关于 git stash 命令的详细用法参考git stash 和 git add 的区别及使用技巧
5. cherry-pick

同步指定提交数据的版本数据。有时我们并不想合并分支,但却需求使用某一分支中的某一次提交的记录。可以通过这个命令来完成。

$ git log --all
commit 8c52cae862bae1eae4c1bdb615af19ccb1e2cc0f (test)
Author: XXXX <XXXX @123.com>
Date:   Sat Feb 18 21:17:37 2023 +0800

    修改文件

commit 516a7fc7bc35f509ead1934b9d136478359a36e5 (HEAD -> master, dev)
Author: XXXX <XXXX @123.com>
Date:   Sat Feb 18 21:14:34 2023 +0800

    初始化

$ git cherry-pick 8c52cae862bae1eae4c1bdb615af19ccb1e2cc0f
[master 3041452] 修改文件
 Date: Sat Feb 18 21:17:37 2023 +0800
 1 file changed, 1 insertion(+)


三、git 回退版本

1.先查看log日志

git log
commit 7e09fe45d4778cdb4a5e19e8622f4b43087a6635 (HEAD -> master, origin/master, origin/HEAD)
Author: xxx <xxx@126.com>
Date:   Thu Jun 2 16:12:22 2022 +0800
    修改写入
commit 0791ef5337e4f5687891a4803eb6b1848c112fa0
Author: xxx <xxx@126.com>
Date:   Thu Jun 2 13:57:48 2022 +0800
    修改bug

2.回退到指定版本

git reset 0791ef5337e4f5687891a4803eb6b1848c112fa0

3.强制提交到远程仓库(提交一定要慎重,防止其他重置其他开发人员的代码)

git push -f  origin dev

查看当前用户信息

1.查看用户名

git config user.name

2.查看当前邮箱

git config user.email
  1. 修改用户名和邮箱:
git config [--global] user.name "Your_username"
git config [--global] user.email "Your_email"

// 如果不加--global参数,只会设置当前git目录下的配置项,不会影响到全局

总结

以上就是在工作中常用的git命令,至于其他命令将在用到的时候持续更新…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值