# git常用基础命令

# 分支操作

1、git branch:创建分支

2、git branch -b:创建并切换到新建的分支上

3、git checkout:切换分支

4、git branch:查看分支列表

5、git branch -v:查看所有分支的最后一次操作

6、git branch -vv:查看当前分支

7、git brabch -b 分支名 origin/分支名:创建远程分支到本地

8、git branch --merged:查看别的分支和当前分支合并过的分支

9、git branch --no-merged:查看未与当前分支合并的分支

10、git branch -d 分支名:删除本地分支

11、git branch -D 分支名:强行删除分支

12、git branch origin 分支名:删除远处仓库分支 (测试了好像不管用啊!!!!)

13、git merge 分支名:合并分支到当前分支上

14、git fetch -p : 获取远程仓库的新分支以及删除远程仓库已删除的分支

15、git push origin :分支名 删除远程分支(用了多年,还是这个好用,12试了不管用)

# 暂存操作

1、git stash:暂存当前修改

2、git stash apply:恢复最近的一次暂存

3、git stash pop:恢复暂存并删除暂存记录

4、git stash list:查看暂存列表

5、git stash drop 暂存名(例:stash@{0}):移除某次暂存

6、git stash clear:清除暂存

# 回退操作

参考地址 (opens new window)

1、git reset --hard HEAD^:回退到上一个版本

2、git reset --hard ahdhs1(commit_id):回退到某个版本

3、git push origin HEAD --force :强推到远程

4、git checkout -- file:撤销修改的文件(如果文件加入到了暂存区,则回退到暂存区的,如果文件加入到了版本库,则还原至加入版本库之后的状态)

5、git reset HEAD file:撤回暂存区的文件修改到工作区

# 标签操作

1、git tag 标签名:添加标签(默认对当前版本)

2、git tag 标签名 commit_id:对某一提交记录打标签

3、git tag -a 标签名 -m '描述':创建新标签并增加备注

4、git tag:列出所有标签列表

5、git show 标签名:查看标签信息

6、git tag -d 标签名:删除本地标签

7、git push origin 标签名:推送标签到远程仓库

8、git push origin --tags:推送所有标签到远程仓库

9、git push origin :refs/tags/标签名:从远程仓库中删除标签

# 常规操作

1、git push origin test:推送本地分支到远程仓库

2、git rm -r --cached 文件/文件夹名字:取消文件被版本控制

3、git reflog:获取执行过的命令

4、git log --graph:查看分支合并图

5、git merge --no-ff -m '合并描述' 分支名:不使用Fast forward方式合并,采用这种方式合并可以看到合并记录

6、git check-ignore -v 文件名:查看忽略规则

7、git add -f 文件名:强制将文件提交

# git创建项目仓库

1、git init:初始化

2、git remote add origin url:关联远程仓库

3、git pull

4、git fetch:获取远程仓库中所有的分支到本地

# 忽略已加入到版本库中的文件

git update-index --assume-unchanged file:忽略单个文件


上面的方式没有尝试过,下面的方式使用过,参考地址 (opens new window)

git rm --cached file_path : file_path为需要忽略的文件路径或者目录路径

然后在 .gitignore 文件里添加上面的file_path

git commit -am 'filter somefiles'

git push

# 取消忽略文件

git update-index --no-assume-unchanged file

# 拉取、上传免密码

git config --global credential.helper store

# 设置别名

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

git config --global alias.co checkout

git config --global alias.ci commit

git config --global alias.br branch

git config --global alias.st status
1
2
3
4
5
6
7
8
9

# 设置全局的用户名和邮箱

git config --global user.name "itfzy.cn"

git config --global user.email "xxx@itfzy.cn"
1
2
3

# git 2.16以后版本有个默认行为是执行git branch等命令时,输出效果会另起一行,感觉挺怪的,可以通过下面的命令全局关闭

git config --global pager.branch false
1

或者每次执行时添加 --no-pager 选项,比如下面这样:

git --no-pager branch
1

# git报错案例解决方案

https://blog.csdn.net/qq_34121797/article/details/79561110 (opens new window)

# 以maser分支覆盖本地内容


git fetch --all && git reset --hard origin/master && git pull

1
2
3
update: 2022-04-21