git开发常用命令

git status

git status 查看状态

D:\ideaProject\gitProject>git status
On branch feature_test
Your branch is up to date with 'origin/feature_test'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        WebRoot/WEB-INF/classes/

nothing added to commit but untracked files present (use "git add" to track)

git设置用户名和邮箱的命令

git config --global user.name liuyongheng
git config --global user.email 946541379@qq.com
#查看用户名和密码
git config user.name
git config user.email 
#查看其他配置信息(git设置列表)
git config --list  

git commit

在提交之前,一定要用git status 确认还有哪些修改过的或是新建的文件还没有暂存起来。否则,这些没有暂存的文件就不能将最新变化提交到版本库中。

git commit -m "注释内容"

git cherry-pick

git cherry-pick

上面的命令将A 和B 两个提交应用到当前分支。这会在当前分支生成两个对应的新提交。
如果想要转移一系列的连续提交,可以使用下面的简便语法

git cherry-pick A…B

上面的命令可以转移从A 到B 的所有提交。它们必须按照正确的顺序放置:提交A 必须早于提交B,否则命令将失败,但不会报错。

#先切换到目标分支
git checkout sit
git cherry-pick -n 427771bc935000cd470c3955100f669604d4a4bb..eef12b3106f9012236c09d8fcca396165203c3a2
# 然后通过tortise或source tree 客户端 添加注释 然后 commit and push 
# 或者继续使用命令行提交
  #git commit -m "merge 分支编号|姓名"
  #git push origin

git reset

  • 取消已暂存的文件

    git reset HEAD 文件名
    
  • 重置到指定版本并push到远程

    #重置到指定版本并push到远程 此操作会直接删除hashA之后的提交记录
    git reset <HashA>
    git push -f
    
  • 用于回滚commit

    git reset --soft|mixed|hard commitID
    
    #不加参数(mixed):将提交内容回滚,保留工作区,并清空暂存区
    #hard:回滚提交,不保留工作目录,并清空暂存区
    #soft:只回滚提交,保罗工作区,保留暂存区
    

git diff

#查询COMMIT2和COMMIT1两个版本之前有差异的文件,一般用于统计某个分支改动涉及的文件(代码清单)
git diff --name-only COMMIT1 COMMIT2 

git log

git log 查看提交历史

每次更新都有一个SHA-1 校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。

常用查找历史日志的选项:
-p:项展开显示每次提交的内容差异;
-n(数字):仅显示最近的n次更新。

git log -1
commit 3fe0f590fe7697158aa248ac3fa14a1890db8240 (HEAD -> feature_test, origin/feature_test)
Author: liuyongheng <liuyongheng@gitlab.com>
Date:   Tue May 11 15:19:36 2021 +0800

git branch/checkout

git branch #查看当前本地分支

git branch -a  #所有分支

git checkout -b dev #创建分支,相等于git branch dev

git branch -m dev dev2 #dev分支重命名为dev2

git checkout -b hotfix_1.0 master #创建一个修补bug的hotfix_1.0分支

git checkout develop #切换到develop分支

git merge --no-ff hotfix_1.0 #hotfix_1.0分支合并到develop分支 

git branch -d hotfix_1.0 #删除修补hotfix_1.0分支,仅本地

# 创建分支具体步骤

git checkout uat

git branch hotfix_1001 #以当前uat分支为基线创建hotfix_1001分支

git checkout hotfix_1001  #切换到hotfix_1001分支

git push --set-upstream origin hotfix_1001  #将hotfix_1001分支推送到远程服务器

git push

git push origin 分支名称

#或者想要推送当前分支:
git push origin 

git push origin --delete sit #删除远程仓库分支

git管理project的特定目录

  • 创建本地仓库,用来存放拉取的目录

    $ mkdir document
    $ cd document
    $ git init
    Initialized empty Git repository in D:/gitdocument/document/.git/
    
  • 添加远程仓库地址,

    $ git remote add origin http://xxxxxx/document.git
    
  • 开启sparse clone

    $ git config core.sparsecheckout true
    # 从项目名称开始算的相对目录
    $ echo "01_文档/02_版本" >>  .git/info/sparse-checkout
    
  • 查看确认

    $ cat .git/info/sparse-checkout
    
  • 指定master分支拉取代码

    git pull origin master
    

查看当前分支是基于哪个分支创建

#先切换到当前分支 
git log --oneline --graph --decorate

修改已经push后的注释

  • 修改倒数第n次的commit,以n=2为例

    $ git rebase -i HEAD~2
    
  • 修改pick为edit(i进入编辑模式,:wq保存退出)
    在这里插入图片描述

  • 修改commit注释(i进入编辑模式,:wq保存退出)

    $ git commit --amend
    
  • 应用修改

    $ git rebase --continue
    
  • 强推到远程

    git push --force
    

git clone 提示File name too long

git config --global core.longpaths true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值