git 常用指令

1、git diff

git diff: 工作区(本地)文件的改动

git diff --cached: 缓存区的文件改动

git diff HEAD: 工作区和缓存区所有改动

git diff --stat: 显示改动摘要而非改动内容

2、git add

git add -u: 提交所有被删除和修改的文件到数据暂存区

git add . 提交所有修改的和新建的数据暂存区

git add -A:提交所有被删除、被替换、被修改和新增的文件到数据暂存区

3、日志关系

git log:版本控制系统提供的版本记录

commit e477f1de28eb7229d0390abb6942668b5250744b (HEAD -> master, origin/master, origin/HEAD)
Author: 
Date:   Tue Sep 14 10:41:10 2021 +0800

    rm rm.txt

commit 72aadf0f92c8021e0be557f82cee170e8e07918d
Author: 
Date:   Tue Sep 14 10:39:57 2021 +0800

    add rm.txt

commit ac90a5a21f9c048d24882986c843fb2114db4631
Author: 
Date:   Tue Sep 14 10:27:21 2021 +0800

    git tracks changes

commit 9feec9f9eb13718e3ab72349c833c85899d3d0be
Author: 
Date:   Tue Sep 14 10:16:26 2021 +0800

    understand how stage works

commit 0ba158667289ec496c3719313d173df1a689cdf6
Author: 
Date:   Tue Sep 14 09:56:28 2021 +0800

    add software

commit a707651c790477f1396ed46490282637f20785bc
Author: 
Date:   Tue Sep 7 16:32:58 2021 +0800

    firstFile

git log  --pretty=oneline  显示简易日志

e477f1de28eb7229d0390abb6942668b5250744b (HEAD -> master, origin/master, origin/HEAD) rm rm.txt
72aadf0f92c8021e0be557f82cee170e8e07918d add rm.txt
ac90a5a21f9c048d24882986c843fb2114db4631 git tracks changes
9feec9f9eb13718e3ab72349c833c85899d3d0be understand how stage works
0ba158667289ec496c3719313d173df1a689cdf6 add software
a707651c790477f1396ed46490282637f20785bc firstFile
d6ac4f63d1cee40db06cc4fc6feac6d8e7ac8672 firstFile
6983abbe1094d60f96d6ff518fd5f3458a180886 添加目录
15e5f66568cb1b9e8bc1cf56578950888d399478 更新 test.txt
4f2042897b93fbc69d1ef0c6eedf9ff3fa07991e test
bc8362091f0680faac2d619ad73d805bc9533175 增加新文件

git reflog: 可以查看所有分支的所有操作记录,git reset 后的日志也能看到

4、版本回退

        git reset --hard : HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,上n个版本HEAD~n;

        git reset --hard ID:回退到指定ID,ID就是git log日志中序列号。

git reset --hard HEAD^
git reset --hard HEAD~3
git reset --hard 72aadf  #序列号可缩写前几位,72aadf对应72aadf0f92c8021e0be557f82cee170e8e07918d add rm.txt

5、撤销修改

        git checkout -- file: 从暂存区恢复到工作区

    git reset HEAD <file>: 撤回暂存区的修改   

        代码提交到版本库后,可以用版本回退方式退回

    git 2.23版本后增加restore命令

          git resotre --worktree file: 从暂存区恢复工作区,

          git restore --staged file:从master恢复暂存区 

6、删除文件

        git rm file  删除缓存区文件

7、远程仓库

        git remote add origin (ssh/http addr):链接远程仓库

        git remote -v查看远程库信息

        git remote rm <name>:删除远程库链接

    git clone (ssh/http addr):远程克隆代码到本地

        git clone -b branch (ssh/http addr):拉起远程分支代码

        git push origin --delete <name>:删除远程分支

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

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改。

8、创建分支

        git branch:查看分支

        git branch <name>:创建分支

    git checkout <name>:切换分支

    git merge <name>:合并分支到本分支

    git branch -d <name>:删除分支

注:对于所有分支而言, 工作区和暂存区是公共的。

git 切换分支时会把未add或未commit的内容带过去_涛歌依旧的博客-CSDN博客_git切分支前有没有提交的代码

9、分支管理

        git merge --no--ff -m "注释" dev:强制禁用Fast forward模式合并

        git stash:储存本地修改文件

        git stash apply:恢复储存文件

        git stash drop:删除储存区

        git stash pop: 等于git stash apply+git stash drop恢复文件并删除储存区

        git stash list:查看储存区

        git cherry-pick <commit>:复制一个特定的提交到当前分支

10、父子仓依赖关系(submodule)

        git clone -b BeeOS_refactor_001 <ssh/http addr> --recurse-submodules: 拉取父仓

        git submodule update --init --recursive

        git submodule update --recursive:更新父子状态        

11、引用子仓

        git submodule add <URL_repo> path

12、遍历式操作子仓

        命令模板:
        git submodule foreach <git_cmd>

例:

git submodule foreach git checkout master  遍历所有子仓库,并切换到master分支

git submodule foreach git status     遍历所有子仓,查看状态

      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值