常用的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。即从某次提交拉取分支。
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:

浙公网安备 33010602011771号