Git 常用指令

#git库中文件的几种状态

  • Untracked -- 文件未跟踪,说明该文件属于新建文件,并没有加入到git库中,不参与版本控制;
  • Modified -- 文件已修改,说明工作区的内容有变更,但文件未暂存;
  • Staged -- 文件已暂存,说明变更内容已存入暂存区,但未提交到本地仓库;
  •  Unmodify -- 文件已提交入库;

#在项目中初始化一个本地git仓库

git init

#新建分支

git branch 分支名

#新建并切换到新建分支

git checkout -b 分支名

#切换分支

git checkout 分支名

#合并分支

git merge 分支名     git rebase 分支名

区别:git merge   提交树相互交错,但merge准确体现了提交历史次序

git rebase    提交树变得很干净, 所有的提交都在一条主线上,但rebase修改了提交历史次序

#当合并产生冲突时,放弃合并内容,使当前分支退回到合并前的状态(在合并分支时,要保证修改的内容已暂存)

git merge --abort

#查看本地仓库所有分支

git branch

#查看远程仓库所有分支

git branch -r

#查看当前仓库状态

git status

#查看具体的修改内容记录

git diff

#将工作区中所有未跟踪或者已修改的文件添加到暂存区

git add .     git add --all

区别:git add . 只添加当前目录及其子目录下的改动内容

git add --all  添加项目根目录下的所有改动内容

#将暂存区中的指定文件退回到未暂存状态

git restore --staged 文件路径

#将暂存区中所有的文件退回到未暂存状态

git restore --staged .

#撤消指定文件中发生改变的内容

git restore 文件路径

#撤消已修改的所有内容

git restore .

#将暂存区中的内容提交到本地仓库

git commit -m "描述信息"

#查看 提交记录哈希值、提交者、日期、描述信息

git log

#查看 提交记录哈希值、提交者、日期、描述信息、文件增删变化概况

git log --stat

#查看 某次提交记录的详细变化

git show 提交记录哈希值

注:HEAD 是一个对当前检出记录的符号引用,它总是指向当前分支上最近一次提交记录;

#查看当前HEAD指向

cat .git/HEAD    git symbolic-ref HEAD

#修改HEAD的指向(分离HEAD)

git checkout HEAD^    HEAD指向上一次提交记录

git checkout HEAD~    n为数字,HEAD指向回返 n 次的提交记录

#修改HEAD指向,使其指向指定提交记录

git checkout 提交记录哈希值

#强制修改分支位置

git branch -f 分支名 HEAD~n     n为数字,将指定分支位置回退 n 级

#回退到上一次提交记录,并删除之前的提交记录(慎用

git reset --hard HEAD^

#回退到指定的提交记录,并删除之前的提交记录慎用

git reset --hard 提交记录哈希值

#取消暂存区文件,使其回退到已修改但未暂存状态

git reset HEAD

#回滚某次提交记录,这个过程不会删除其它提交记录,而是将回滚的内容当作一次新的提交

git revert HEAD~  或   git revert 提交记录哈希值

#将指定的提交记录复制到当前HEAD引用下方(提交记录重排序)

git cherry-pick 提交记录哈希值1 提交记录哈希值2 ...

#选出当前提交到指定提交之间的提交记录,放入vim编辑器进行编辑(提交记录调整)

git rebase -i HEAD~n   或    git rebase -i 提交记录哈希值

注:git中的标签可以代替提交记录哈希值,可以用来快速定位到提交记录;

#为指定的提交记录绑定一个标签

git tag 标签 提交记录哈希值    该标签为引用类型

git tag -a 标签 -m 描述信息    该标签为对象类型

注:git clone 会将远程仓库克隆到本地,本地会产生一个 origin/master 分支,主要用来反映从远程仓库拉取代码那一时刻的远程仓库状态,本地仓库中会产生一个 master 分支;master 被设定为跟踪 origin/master ,这意味着 master 分支指定了推送的目的地以及拉取远程后合并的目标,这就是 master 分支与 origin/master 分支的关联关系;

#克隆远程仓库到本地

git clone url

#从远程仓库获取最新的记录到 origin/master 分支,本地仓库 master 分支不受影响

git fetch

#刷新合并远程与本地提交记录,效果等同于 git fetch + git merge

git pull    远程仓库最新的提交记录会被先下载到 origin/master 上,之后再合并到本地的 master 分支

#将本地仓库当前分支下的工作记录提交到远程仓库,并更新本地的origin/master分支

git push

#定义本地分支跟踪远程分支,让本地分支具备推送和拉取代码的功能

git checkout -b 本地分支名 origin/远程分支名  

git branch -u origin/远程分支名 本地分支名

#提交本地仓库中指定的分支到远程仓库

git push origin 本地分支

#提交本地仓库中指定的分支到远程仓库指定的分支下,若远程仓库没有该分支,则自动新建

git push origin 本地分支:远程分支

#在远程仓库创建分支并且与本地分支完成跟踪

git push --set-upstream origin 分支名

#将远程仓库指定分支更新到本地的 origin/分支名

git fetch origin 远程分支

#将远程仓库指定的分支更新到本地指定的 origin/master 分支

git fetch origin 远程分支:本地分支

分支合并

注:0 代表没有冲突,1 代表文件中两个分支共同的内容,2 代表当前版本文件内容,3 代表

#查看合并的目标分支与当前版本所有文件的冲突项

git ls-files -s

#查看指定版本的文件内容(n 为数字,配合 git ls-files -s 命令使用)

git show :n:filename

#严格按照当前版本合并两个分支,冲突的解决方式以当前版本为准

git merge -s recursive -X ours 目标分支

#严格按照目标分支版本合并分支,冲突解决方式以目标分支为准

git merge -s recursive -X theirs 目标分支

#只合并目标分支的指定文件

git checkout 目标分支 文件绝对路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值