Git常用命令

git

起步

// github账户和你的电脑关联,配置秘钥
	SSH 公钥
	1).确认是否已经拥有密钥
		$ cd ~/.ssh
		$ ls
		authorized_keys2  id_dsa       known_hosts
		config            id_dsa.pub
		// 我们需要寻找一对以 id_dsa 或 id_rsa 命名的文件,
		// 其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是私钥
	2).如果找不到这样的文件(或者根本没有 .ssh 目录)
		// 通过运行 ssh-keygen 程序来创建它们,默认存储位置(.ssh/id_rsa)
		$ ssh-keygen
	3).获得公钥信息
		$ cat ~/.ssh/id_rsa.pub

仓库

1.命令行了解
// 命令行简单操作
D: // 当目前不在D盘的情况下会进入D盘目录
dir / ls // 查看当前目录下所有目录和文件
md xx // 新建xx文件夹
md xxx.xx // 新建文件
exit // 退出命令行

// git练习相关命令
cd ~/desktop
mkdir xxx-git
cd xxx-git
2.初始化仓库(该动作只需执行一次)
git init	
3.基本流程
git status // 查看状态
git add // 添加修改
	git add <文件>
    git add <目录>
    git add . // 把做的所有修改还有新的文件添加到暂存区(*不含删除文件*)
	git add -u // 把做的所有修改还有删除的文件添加到暂存区(*不包括新文件*)
    git add -A // 把所有东西当道暂存区(含 修改,新文件,*替换文件*,删除文件)
git commit // 提交修改到Git仓库
	git commit -a // 把所有修改与删除自动添加到暂存区然后提交。不包含未跟踪文件。
	git commit -m '提交的备注信息' // 设置提交信息
	//// git commit --amend // 修改刚刚做的这次提交(比如修改提交的信息,或者把新的修改放到刚做的这次提交里) ////
		git commit --amend --no-edit // --no-edit,表示直接用上次提交的信息
git log // 查看历史
	git log --oneline // 将每条日志的输出为一行
   	git log --oneline -n 3 // 显示最新的三条
    git log --pretty=raw // 关于每次提交的更多信息
	git log --decorate // 显示一些相关的信息,如HEAD、分支名、tag名等
    git log --decorate --oneline
    git log --oneline --graph // --graph 选项查看历史,会标记出使用 --no-ff 选项以后的合并
git reflog // 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
git show // 查看某次提交
	git show '提交节点的ID' // 展示该节点的修改详情
git tag 'tag名称' log编号 // 给节点贴标签
git checkout // 检查
	git checkout '提交节点的ID'
	git checkout master // 签出master分支
    git checkout -b <xxxx> // -b,如果xxxx分支不存在,就创建
git revert // 撤销
	git revert '提交节点的ID'
	// 发生冲突
	fix conflicts and run "git revert --continue"
	1.打开冲突的文件,解决冲突
	2.git add <冲突的文件>
	3.git commit -m 'Revert "XXXX"
git reset // 重置(重置的某次提交,他之后的所有提交都会被抹掉)
	git add 之后执行 git reset / git reset <文件名称> // 从暂存区拿出之前添加的修改
	git reset --hard '提交节点的ID'
	git reset HEAD~1 --hard // 撤销,回退到上一个版本
git clean // 清理(把未跟踪的文件清理掉)
	git clean -f
// git清除本地缓存命令
	git rm -r --cached .
	git add .
4. 忽略跟踪 .gitignore
	// 添加 .gitignore, 并添加 node_modules
	echo 'node_modules' >> .gitignore
5.分支
git branch // 列出分支( 分支名前的 * 标识当前所在分支 )
git branch <xxx> // 创建 xxx 分支
    git checkout <xxx> // 创建后切换到 xxx 分支
git branch -r // 列出远程分支
git branch -a // 列出本地分支和远程分支
git branch -d <分支名> // 删除分支 ( 或 git branch -D <分支名> )
    
git merge <分支名> // 合并分支
    git checkout <要合并到的分支> // 先切换到"要合并到"的分支
    // 1. Fast-Forward 合并,(期间,要合并到的分支没发生什么变化)
    git merge <要被合并的分支>
    // 2.  --no-ff 合并,(历史里可记录合并动作)
    git merge <要被合并的分支> --no-ff
	// 3. 3-Way 合并,(期间,要合并到的分支内容发生了变化)
	git merge <要合并到的分支>

git rebase // 衍合过程(用于:主干和分支对同一文件都有修改,合并时候有冲突的情况),产生一个更为整洁的提交历史
	git rebase <分支名> // 一般为 git rebase master
    // git提示出现了代码冲突,处理完毕后
    git rebase --continue // 继续刚才的处理处理
6.远程
一般远程仓库都有两种地址,一种是 HTTPS,一种是 SSHHTTPS: 用的是用户名 + 密码的方式验证你的身份。
SSH: 会使用 ssh-key 作为验证身份的方法。

// 查看远程仓库:
    git remote
    git remote -v // 查看详情
// 添加另外远程库
    git remote add 远程库名 远程库地址
    例:git remote add origion https://。。。。。
// 删除该远程库:git remote rm [name]
    git remote remove 远程库名 ( git remote rm 远程库名 )
    例:git remote remove origin(一般都是叫origin)
// 改变远程库的名字
    git remote rename 旧名称 新名称
    例:git remote rename origin neworigin(把origin改成neworigin)
// 推送远程仓库
	git push [remoteName] [localBranchName]
        // 按如下格式提交分支至线上时,会自动创建 MR 
        git push 主机名 本地分支名:mr/线上目标分支名/本地分支名
		// 加上了 -u 选项以后,下面可以直接执行:git push
		git push -u [remoteName] [localBranchName]
// 克隆/复制
	git clone <远程仓库地址> <new_project> 
        // 上面的指令 -- 将远程版本库完全克隆到本地 new_project 目录下
        // new_project 可省略
// 下载
    git fetch 远程 分支
// 拉取远程仓库 ( 相当于 git fetch + git merge )
	git pull [remoteName] [localBranchName]
	git pull --rebase 远程 // --rebase 选项,会用 git rebase 代替 git merge
// 修改远程仓库
	git remote set-url --push [name] [newUrl]

配置信息

// 查看配置信息
git config --list
// 获取配置 name and email
git config user.email
git config user.name
// 设置当前仓库的 user.name / user.email
git config user.email xxxx
git config user.email xxxxxx@xxx.com
// 设置全局 user.name / user.email
git config --global user.name xxxxx
git config --global user.email xxxxxx@xxx.com

常见问题处理

(持续更新~)

1. 如果出现 warning: LF will be replaced by CRLF 
	// (字符转换的问题 -- 包含混合换行符)
	git config --gobal core.autocrlf false // 提交检出均不转换

2. git pull 失败,出现 fatal: refusing to merge unrelated histories 
	//(加上 --allow-unrelated-histories, 进行强行合并)
	// 原因:两个根本不相干的 git 库,一个是本地库,一个是远端库,本地要去推送到远端,被告知无法合并
	git pull origin master --allow-unrelated-histories
<think>我们被要求生成一个关于Git常用命令的汇总列表。根据用户的要求,我们需要提供结构清晰的回答,并尽量保证真实可靠。同时,我们参考了站内引用中提供的Git命令信息。根据引用内容,我们可以整理出以下常用命令:1.基本操作(初始化、添加、提交等)2.分支管理3.远程仓库操作4.标签管理5.历史查看与撤销6.其他实用命令(如删除大文件、清理仓库等)我们将按照这些类别来组织命令。注意:由于引用中提供了一些特定问题的解决方案(如删除大文件),我们也会将其作为实用命令的一部分。另外,注意用户要求使用中文回答,并且行内数学表达式使用$...$格式(但本问题不涉及数学表达式,所以忽略),独立公式使用$$...$$格式(同样不涉及)。同时,在回答末尾生成相关问题。我们开始整理Git常用命令汇总:</think>### Git常用命令汇总 以下是Git常用命令分类整理,帮助您高效管理代码版本: #### 1. 仓库初始化与基础操作 ```bash # 初始化新仓库 $ git init # 克隆远程仓库 $ git clone <远程仓库URL> # 查看当前状态 $ git status # 添加文件到暂存区 $ git add <文件名> # 添加单个文件 $ git add . # 添加所有修改 # 提交更改 $ git commit -m "提交说明" ``` #### 2. 分支管理 ```bash # 创建分支 $ git branch <新分支名> # 切换分支 $ git checkout <分支名> $ git switch <分支名> # Git 2.23+推荐方式 # 创建并切换分支 $ git checkout -b <新分支名> $ git switch -c <新分支名> # 合并分支 $ git merge <要合并的分支名> # 删除分支 $ git branch -d <分支名> # 安全删除 $ git branch -D <分支名> # 强制删除未合并分支 ``` #### 3. 远程仓库操作 ```bash # 添加远程仓库 $ git remote add origin <远程仓库URL> # 查看远程仓库 $ git remote -v # 推送到远程仓库 $ git push -u origin <分支名> # 首次推送 $ git push # 后续推送 # 拉取远程更新 $ git pull origin <分支名> $ git pull --rebase origin <分支名> # 变基式拉取 # 删除远程连接 $ git remote rm origin ``` #### 4. 版本回退与撤销 ```bash # 查看提交历史 $ git log $ git log --oneline # 简洁版日志 # 撤销工作区修改 $ git checkout -- <文件名> # 撤销暂存区文件 $ git reset HEAD <文件名> # 版本回退 $ git reset --hard <commit_id> # 彻底回退 $ git reset --soft <commit_id> # 保留修改 # 恢复删除的文件 $ git restore <文件名> # Git 2.23+ ``` #### 5. 标签管理 ```bash # 查看标签 $ git tag # 创建标签 $ git tag <标签名> # 轻量标签 $ git tag -a v1.0 -m "版本说明" # 附注标签 # 推送标签 $ git push origin <标签名> # 删除标签 $ git tag -d <标签名> # 本地删除 $ git push origin :refs/tags/<标签名> # 远程删除 ``` #### 6. 高级维护 ```bash # 清理历史大文件 $ git filter-branch --force --index-filter \ 'git rm -rf --cached --ignore-unmatch <文件名>' \ --prune-empty --tag-name-filter cat -- --all # 回收存储空间 $ git reflog expire --expire=now --all $ git gc --prune=now # 查看仓库大小 $ git count-objects -vH ``` #### 7. 配置相关 ```bash # 设置用户名/邮箱 $ git config --global user.name "用户名" $ git config --global user.email "邮箱" # 查看配置 $ git config --list # 设置默认编辑器 $ git config --global core.editor vim ``` > **最佳实践提示**: > 1. 频繁提交小变更,保持提交记录清晰 > 2. 使用`.gitignore`文件排除无需版本控制的文件 > 3. 重要分支(如main/prod)设置保护规则 > 4. 推送前先执行`git pull --rebase`避免合并提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值