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