git常用命令
-
进入本地仓库根路径,在.git所在目录打开git bash
-
查看该仓库的用户名和密码,如果没有,需设置
git config user.name
git config user.email
git config user.email "xxxx@xx.com"
git config user.name "xxxx"
- 查看关联的远程仓库
# 查看已关联的远程库信息
git remote -v
# 查看关联远程仓库时设置的名称
git remote
# 删除原有的名称
git remote rm origin
# 重新关联,并指定新的名称
git remote add github git@github.com:用户名/仓库名.git
# 推送代码时使用新的名称
git push github main
- https的方式关联远程仓库
git remote add origin https://gitee.com/个人空间地址/仓库名.git
- 克隆仓库到本地
git clone git@github.com:用户名/仓库名.git
- 推送流程
# 添加到暂存区
//单个文件
git add 文件名
//多个文件夹之间空格隔开
git add 文件夹1/ 文件夹2/
//所有文件
git add .
# 提交到本地仓库
git commit -m "备注"
# 第1次推送
git push -u origin main
# 推送
git push origin main
- 分支管理
# 查看分支
git branch
# 创建分支
git branch <name>
# 切换分支
git checkout <name>
# 创建并切换到分支
git checkout -b <name>
# 合并分支
# 基于当前分支,合并另外一个分支,分支之间不冲突
git merge <name>
# 例如当前在main分支,将dev分支合并到main分支
# 在合并分支前,dev分支需要先add和commit
git merge dev
# 如果强制禁用Fast forward模式,即普通模式,Git就会在merge时生成一个新的commit
git merge --no-ff -m "备注" <name>
# 例如当前在新建的dev分支,将本地dev分支推送到远程
git push origin dev
# 例如当前在main分支,要删除dev分支
# 先删除本地dev分支
git branch -D dev
# 再删除远程dev分支
git push origin -d dev
- 拉取项目
# 拉取最新代码到本地
git pull origin main
# 强制合并到本地
git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
# 例如强制将远程main合并到本地main
git pull --rebase origin main
# 例如强制将远程dev合并到本地main
git pull --rebase origin dev:main
- 查看状态
# 例如当前在main分支,修改1.txt后,提交到暂存区,手动添加2.txt到本地仓库查看状态
git status
# 显示如下,表示1.txt还未提交到本地仓库,2.txt还没有添加到暂存区
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: 1.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
2.txt
# 将所有内容提交后,再次修改1.txt,同时手动删除2.txt
# 再次查看状态
git status
# deleted:表示本地仓库中的有物理文件已被删除,modified:表示被修改过
On branch main
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: 1.txt
deleted: 2.txt
no changes added to commit (use "git add" and/or "git commit -a")
- 版本管理
# 查看提交到版本库的文件和历史版本
git log
# 提交到版本库的文件的id
git log --pretty=oneline
# 显示当前及之前的版本号
git log --decorate --graph --oneline --all
# 将版本历史显示为一行, 历史版本号部分显示
git log --pretty=oneline --abbrev-commit
# 查看分支合并图
git log --graph
# 工作空间 -> 暂存区 -> 版本库
# 工作空间的文件被修改后,查看状态会返回modified,如何恢复上一个版本:工作空间的文件先手动恢复,再丢弃工作空间的修改
git checkout -- file
# 文件添加到暂存区后如何撤销:
git reset HEAD file
//丢弃工作空间
git checkout -- file
# 回到上一个版本
git reset --hard HEAD^
# 回到最新版本,需指定id
git reset --hard 1094a
# 删除版本库中的文件
git rm <filename>
# 从版本库中删除文件,但不删除文件
git rm <filename> --cached
# 建议
rm <filename>
# 确认删除
git rm <filename>
# 再提交
git commit -m 'delete a file'
# 若删错了用版本库里的版本替换工作区的版本
git checkout -- <filename>