Git常用命令
1.下载源代码
默认从master分支下载:
git clone https://github.com/xxx/xxx.git ,对于低版本的git客户端,需要输入用户名和密码,如:git clone https://username:passwd@github.com/xxx/xxx.git
从指定分支下载:
git clone -b 分支名称 https://github.com/xxx/xxx.git
2.删除分支
-删除本地分支: git branch -d
-删除远程分支: git push origin --delete git push origin :originBranchName
先删除远程分支,再使用git branch -d localBranchName
删除本地分支,参考push and delete remote branches 。
3.重命名
-重命名本地分支: git branch -m
-重命名远程分支: 在git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。
4.查看提交日志
git log --oneline
如果需要查看指定作者的提交日志,可以使用--author="
另外,git log --raw 可以查看更加详细的日志信息。
查看某个文件的提交日志:git log 文件名
或者 git log --pretty=oneline 文件名
修改最近一次git提交的作者信息:git commit --amend --author="作者名称 <作者邮箱>"
5.保存用户名和密码
git config credential.helper store
如果在项目根目录下执行该命令,则只会保存该项目自己的用户名和密码信息。
6.撤销提交
git reset --soft HEAD^
参数含义:
--mixed
:不删除工作空间改动代码,撤销commit,并且撤销git add .
操作。这是默认参数,git reset --mixed HEAD^
和git reset HEAD^
效果是一样的。
--soft
:仅仅是撤回commit操作,不撤销git add .
代码改动仍然保留。
--hard
:删除工作空间改动代码,撤销commit,撤销git add .
,注意完成这个操作后,就恢复到了上一次的commit状态。
HEAD^
的意思是上一个版本,也可以写成HEAD~1
。
如果你进行了2次commit,想都撤回,可以使用HEAD~2
。
6-1.修改最后一次提交commit信息
如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。
或者直接执行:
git commit --amend --message="提交日志"
6-2.修改已经push到远程的commit信息
6-3.删除已经push到远程的commit记录
第一步:回滚上一次或N次提交
# 回滚上一次提交,即:最后一次提交
git reset --hard HEAD^
# 或者
git reset --hard HEAD~1
第二步:强制推送本地代码到远程
git push origin master -f
一般来讲,不会直接删除连续的多次commit记录(否则所做的工作就全部作废啦~),通常可能会删除指定的某一次commit记录(非最后一次提交)。
第一步:查看提交日志
git reflog
b08ec3f HEAD@{4}: commit: commit--3
39841d1 HEAD@{5}: commit: commit--2
35f96e1 HEAD@{6}: commit: commit--1
假设:现在要删除commit--2这条提交记录。
获取要删除记录commit--2的前一次提交commit--1的提交ID:35f96e1。
第二步:执行rebase操作
git rebase -i 35f96e1
执行完这个命令后,就可以看到35f96e1后的所有commit记录。
默认是使用vim编辑器打开了commit log list,然后就可以针对不需要的某些log进行删除。
vim保存退出。
第三步:解决冲突,强制推送更新到远程
git add . # 冲突时使用
git commit -m "new commit" # 冲突时使用
git rebase --continue # 冲突时使用
git push origin master -f
再查看远程的提交记录,发现commit--2就没有了。
参考:https://www.jianshu.com/p/18b5cbc3e702 Git删除远程某个历史提交记录
7.获取远程分支信息
git remote update origin --prune
:更新远程分支列表,这里要注意下,如果你的remote branch不是在origin下,按你得把origin换成你的名字。
git fetch --prune
:这样就可以实现在本地删除远程已经不存在的分支。
8.更新远程分支到本地
解决“Rebase autoskip patches that are already in upstream”,执行:git pull --rebase
。
详见:Rebase autoskip patches that are already in upstream
9.查看文件是否被加入到Git仓库进行追踪
git lfs ls-files --include=<path>
这里的path,可以是一个文件夹也可以是一个文件,这样就可以显示一个较小范围内的追踪文件。
10.不显示本地分支与远程分支的同步状态
假定在dev分支上,虽然本地分支已经push到服务器上了,但是git status
不显示本地分支与远程分支的同步状态:“Your branch is up to date with 'origin/dev'”,如下:
$ git status
On branch dev
nothing to commit, working tree clean
解决办法:
使用-u
参数手动设置本地分支追踪远程分支:
git branch -u origin/dev
$ git status
On branch dev
Your branch is up to date with 'origin/dev'. # 这一行表示本地分支与远程分支的同步状态
nothing to commit, working tree clean
参考:http://www.apes.today/post/28792553/0 Git status-不显示远程回购的状态
11.全局配置项
查看Git所有配置:git config --list
删除全局配置项
(1)终端执行命令:
git config --global --unset user.name
(2)编辑配置文件:
git config --global --edit
12.中文问题
解决git status不能显示中文:git config --global core.quotepath false
。
解决git bash 终端显示中文乱码:
在git bash的界面中右击空白处,弹出菜单,选择选项->文本->本地Locale,设置为zh_CN,而旁边的字符集选框选为UTF-8。
英文显示则是:Options->Text->Locale改为zh_CN,Character set改为UTF-8。
参考:git status 显示中文和解决中文乱码
在gitk界面中注释中文乱码,添加配置:git config --global gui.encoding utf-8
参考:gitk中文乱码 git中文乱码
13.本地仓库关联到远程仓库地址
此时远程仓库只有一个地址,仓库中没有任何文件,关联之后将本地仓库文件推送到远程仓库中。
git remote add origin 远程仓库地址
,其中origin可以更换为其他名称(如:将一个本地仓库关联多个远程仓库时需要设置为不同的名称)。
查看已经关联的远程仓库地址:
git remote -v
14.设置用户名和邮箱
查看设置信息:
# 如果在git项目根目录下执行,查看的是:针对该项目的git配置+git全局配置;否则查看的是git全局配置信息。
git config --list
全局设置:
git config --global user.name "zhangsan"
git config --global user.email "zhangsan@gmail.com"
针对项目单独设置(在项目根目录下操作):
git config user.name "lisi"
git config user.email "lisi@gmail.com"
https://blog.csdn.net/pintu274111451/article/details/79767970 Git 当前项目设置 用户名、邮箱
更多git命令及使用方法详见:https://git-scm.com/documentation
15.取消文件跟踪与删除文件
如果不想使用git跟踪某个文件/目录时,分别针对2种情况进行处理:
- 如果文件/目录并未加入到git仓库,直接在.gitignore文件中添加需要忽略的文件/目录即可
- 如果文件/目录已经添加到git仓库,此时取消git跟踪使用
git rm
命令实现。
在使用git rm
命令时一定要注意参数的不同,执行效果也不同。
git rm -r --cached . # 不删除本地文件
git rm -r --f . # 删除本地文件
举例说明:
git rm --cached readme1.txt # 删除readme1.txt的跟踪,并保留在本地
git rm --f readme1.txt # 删除readme1.txt的跟踪,并且删除本地文件
如果仅仅需要取消文件跟踪而无需删除本地文件,一定要使用--cached
选项,切记!
16.Windows环境执行git clone时提示文件名过长
17.同步远程仓库已经删除的分支
远程仓库中的分支已经被删除,但是在客户端使用git branch -r
命令查看时依然可以看到远程分支存在。
执行如下命令:
git remote prune origin
作者:编程随笔
出处:http://www.cnblogs.com/nuccch/
声明:本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)