git 常用命令
最基本命令
# 初始化 git 仓库
git init
# 添加具体文件
git add <filename>
# 添加所有文件
git add .
# 撤回文件提交
git reset <filename>
# 添加提交消息
git commit -m <message>
# 查看提交日志
git log
git 文件状态
untracked(新建文件,或者提交后被删除)
staged(文件add之后,即暂存缓存区)
unmodified(文件commit之后,提交到本地仓库)
modified(文件被修改之后)
配置命令别名
在 .git 目录下,config 文件中配置
[alias]
ad = add .
查看日志并回退版本
git log
# 回退项目到某个提交前的状态
git reset 哈希值 --hard
# 再次查看日志,发现新的日志消失了
git log
# 此时如果想回到最新的状态,查看所有的操作记录
git reflog
# 找到想回退的 commit id,进行回退,或者直接进行 git pull
git reset <commit id>
git reset 模式
--hard:不保存所有变更
--soft:保留变更,并且变更内容处于 staged 状态
--mixed:保留变更,并且变更内容处于 Modified 状态(默认)
分支(branch)
# 创建并切换分支,新分支的 commit 记录会继承自原来的分支,切完分支之后,新分支的改动和原来分支不再有关系
# name 新分支的名字
# template 以哪个分支或者commit 为模板,如果不填,默认以当前分支为模板
git checkout -b <name> <template>
# 查看所有分支
git branch
# 修改分支名称
git branch -m oldBranchName newBranchName
merge 合并
# 合并分支变更,将需要合并的变更合并到当前分支
git merge <branchName>
远程仓库(remote)
# 查看远程仓库地址
git remote -v
# 修改设置远程仓库地址(前提是需要已经有远程仓库地址)
git remote set-url origin [url]
# 删除远程仓库绑定
git remote rm origin
# 设置远程仓库
git remote add origin [url]
# -set-upstream 设置上流分支
# origin 远程仓库
# 将远程仓库的 a 分支作为本地 a 分支的上流分支,会在远程仓库创建新分支(新分支,第一次提交需要设置)
git push --set-upstream origin a
git fetch
# 此时只会展示本地分支,不会显示 a 分支
git branch
# 但是可以切换到 a 分支,此时的 a 分支是本地的,只不过模板来自远程仓库,相当于 git checkout -b a origin a
git checkout a
# 创建分支,以远程仓库的 a 分支未模板
git checkout -b b origin a
# 等同于先 fetch 在 merge
git pull
git中pull和fetch的区别
一、远端跟踪分支不同
1、git fetch:git fetch能够直接更改远端跟踪分支。
2、git pull:git pull无法直接对远程跟踪分支操作,我们必须先切回本地分支然后创建一个新的commit提交。
二、拉取不同
1、git fetch:git fetch会将数据拉取到本地仓库,它并不会自动合并或修改当前的工作。
2、git pull:git pull是从远程获取最新版本并 merge 到本地,会自动合并或修改当前的工作。
三、commitID不同
1、git fetch:使用 git fetch 更新代码,本地的库中 master 的 commitID 不变,还是等于 1。
2、git pull:使用 git pull 更新代码,本地的库中 master 的 commitID 发生改变,变成了 2。
rebase
rebase 就是重新排列 base,base 指的就是 commit
1、git rebase master
2、解决冲突,并 git add .
3、git rebase --continue
重复 2、3 步骤,直至没有需要 reabse 的 commit 节点
git log 查看 commit,可以看到分支的 log 的顺序已经和 master 分支排序整合了
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: