常用的Git命令
git使用
1. 基本信息设置
-
基本流程
-
设置用户名、用户邮箱
git config --global user.name "xxxx"
git config --global user.email "xxxx@163.com"
-
查询当前设置信息:
git config --list
-
若要通过SHH进行工作,需要配置SSH,或者选择https(要求登录github)
- 查看自己是否已经有了密钥,一般放在在目录
~/.ssh
下id_rsa.pub
为公钥,id_rsa
为私钥,若没有需要按下面生成
- 生成密钥
ssh-keygen -t rsa -C "xxx@mail.com"
- 查看公钥
cat ~/.ssh/id_rsa.pub
- 测试链接
ssh git@github.com
- 查看自己是否已经有了密钥,一般放在在目录
2. 初始化仓库
- 创建一个放所有仓库的文件夹
- 进入文件夹里,初始化仓库:
git init
3. 本地仓库常用命令
- 从远程获取代码并合并本地的版本:
git pull
- 查看仓库状态(新增的或者修改的文件):
git status
- 添加文件到暂存区:
git add filename
,或者所有文件:git add .
- 丢弃工作区的改动:
git restore filename
或者git restore .
--staged filename/.
以取消暂存
- 将暂存区内容添加到本地仓库:
git commit -m "描述信息"
- 撤销此次提交:
git reset --soft HEAD^
--soft
仅撤销对本地仓库的提交--hard
撤销工作区、暂存区、本地仓库的改动代码,加上id用来回退到历史版本HEAD^
=HEAD~1
上一次的commit,上两次提交HEAD~2
- 仅修改最近一次提交的描述信息
git commit --amend
- 撤销此次提交:
- 将文件从暂存区和工作区中删除
git rm filename
,- 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项
-f
。 - 如果想把文件从暂存区域移除,但仍然希望保留在工作区中,
--cached
选项。
- 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项
- 查看历史提交历史:
git log
--oneline
查看历史记录的简洁的版本--graph
查看历史中什么时候出现了分支、合并--reverse
参数来逆向显示所有日志
- 查看指定文件的修改记录:
git blame filename
4. 远程仓库常用命令
- 克隆仓库:
git clone 地址
- 进入仓库目录后,显示仓库信息:
git remote -v
。 其中origin
为远程地址的别名。
- 进入仓库目录后,显示仓库信息:
- 显示某个远程仓库的信息:
git remote show 地址
- 本地仓库同步到远程仓库:
git push
-f
强制提交,强制变成本地仓库内容,HEAD所在节点
分支管理
- 列出本地仓库的所有分支:
git branch
-r
命令查看远端库的分支情况
- 创建分支:
git branch branchname
-b
创建新分支并立即切换到该分支下--set-upstream origin branchname
建立本地到远端仓库该分支的链接,这样代码才能提交上去
- 切换分支命令:
git checkout branchname
- 删除分支
- 删除本地仓库中分支
git branch -d branchname
- 删除云端仓库分支:
git push origin :branchname
,其中:
代表删除。该命令会同时删除本地仓库的分支。
- 删除本地仓库中分支
- 将分支合并到所在分支:
git merge branchname
--squash
不合并提交记录
5. 参与开源项目
- 先fork项目,再pull requst,让原仓库接受自己的代码,即可完成开源贡献
- fork的项目保持最新(同步原仓库)
- 把别人的仓库添加到你的上游远程
git remote add upstream 原仓库地址
,upstream
是取的别名- 查看remote配置信息
git remote -v
其中origin
是自己的,upstream
是原仓库的
- 查看remote配置信息
- 获取原作者的仓库
git fetch upstream
- 切换到自己想要合并的分支
git checkout branchname
- 可以直接
git pull upstream branchname
,会直接合并到所在分支,省略下面一步
- 切换到自己想要合并的分支
- 合并源仓库某一分支到当前分支
git merge upstream branchname
- 最后再
git push
提交到自己的远程仓库
- 把别人的仓库添加到你的上游远程
场景模拟
- 存在如下提交场景,要求从f提交点新建dev分支,再提交g。即从某次提交拉取分支。
copy
- 1
- 2
- 3
a -> b -> c -> f -> i (master)
\
g (dev)
- 步骤:
- 切换分支到master:
git checkout master
- 找到f的commit_id:
git log --oneline
- 切换到f位置:
git checkout commit_id
, 'detached HEAD' state。 - 创建并切换分支:
git checkout -b dev
- 等同于
git branch dev
和git checkout dev
作用
- 等同于
- 同步到远程仓库
git push -u origin dev
- 切换分支到master:
本文作者:oniisan
本文链接:https://www.cnblogs.com/oniisan/p/usegit.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
标签:
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步