git常用命令
git init -- 初始化git生成git仓库
git status -- 查看git状态
git add -- 添加文件到暂存区
git commit -- 提交变更文件到本地仓库
git pull -- 将远程主机的最新内容拉到本地
pull会把所有的提交自动合并到当前分支
git fetch -- 从远程获取最新版本到本地,不会自动merge。
fetch只是把拉取的提交存储到本地仓库,真正合并到主分支中需要使用merge
git merge -- 合并分支
git push -- 提交到远程
git stash -- 将一个修改后的工作区中的改动保存起来,将工作区恢复到改动前的状态。
git log -- 查看提交记录日志
git branch -- 查看所有分支
git reflog -- 查看所有的操作记录
git rebase -- 重新排列base,base指commit
git remote -- 创建、查看和删除本地仓库与其他代码仓库之间的连接
git clone -- 初始拉取项目
git cherry-pick -- 将指定的提交(commit)应用于其他分支。
git reset <filename> -- 重置到某个commit的状态
--hard :不保存所有变更
--soft:保留变更且变更内容处于Staged
--mixed :保留变更且变更内容处于Modified
git checkout <name> <template> -- 创建新分支
<name>:新分支的名字
<template>:指以哪个分支或者commit 为模板
git checkout <branchname> -- 切换到指定分支
git checkout -b <name> <template> -- 切换指定分支(进入自己的分支)master(主干)
常用提交步骤
git stash -- 查看git状态
git add <filename> -- 添加文件到暂存区
git add . -- 加入所有文件到暂存区
git commite -m 'message' -- 提交变更文件到本地仓库
git pull -- 拉取远程分支项目
git push -- 提交到远程自己分支
git本地创建分支提交至github
# 未确定好,复习完学习视频后重新编辑。
git fetch -- 查看远程仓库分支信息
git branch -- 查看本地分支
git branch 分支名称 -- 创建本地分支
git checkout <branchname> -- 切换到指定分支
git merge 来源分支 -- 合并分支
git push --set-upstream origin bc-a -- 设置上流分支
--set-upstream是指设置上流分支
文件状态
1.没有被add过的文件叫untracked
2.add之后文件处于staged状态等待commite
3.commit之后文件处于unmodified这里之所以是modified是因为文件会跟仓库中的文件对比
4.当unmodified的文件被修改则会变为modified状态
5.modified之后的文件add之后将继续变为staged状态
6.unmodifed的文件还有一种可能是已经不再需要了,那么可以remove它不再追踪变为untracked状态
1.Untracked:新建文件
2.Unmodified:
3.Modified:
4.Staged:git add之后,文件状态为Staged
一些解决方法
git撤销
1.执行了 git add . 后发现文件错误,使用git restore --staged 撤销暂缓区的提交的文件
命令:git restore --staged
2.本地修改了 但是改错了 或者 不想要本地的修改
命令:git checkout .
git回退版本
1.查看版本所有提交的版本号:git log
2.如果自己本地有修改的内容还没有提交 需要先备份
3.确定回退到指定版本号:
(1)git reset <filename> --hard
(2)回退到上一个版本 ^ 的数量代表回退第几个版本 , 一个^ 代表回退上一个版本,
两个^ 代表回退上一个的上一个版本:git reset --hard HEAD^
(3)回退到第上100版本:git reset --hard HEAD~100
3.强制将本地代码同步到远程仓库:git push origin master --force,master主分支 ###此方式不建议
多人修改同一分支导致报错
在本地修改了a文件,然后我们pull 或者push ,如果远程分支下a文件也有修改,这个时候就会 出现冲突
-
如果本地修改的少或者无关紧要的话 可以放弃本地修改 git checkout . 然后git pull
-
git pull 更新代码出现冲突的解决方法
1.将没有commit的代码修改放在堆栈中:git stash 2.拉取远程分支(此时本地分支会回滚到上次commit的情况,你的改动都存在stash中):git pull 3.将stash中改动重新加回本地分支:git stash pop 4.如果改好了:git add . -> git commit -m 'message' -> git pull -> git push
-
在 git pull 更新代码的时候出现冲突
git add . ↓ git commit -m 'message' ↓ 在pull的时候出现冲突 ↓ git pull ↓ 这个时候需要解决本地的冲突再一次的提交 ↓ git add . ↓ git commit -m 'message' ↓ git pull ↓ git push
-
在git pull --rebase 或者 git rebase 分支名 之后如果有合并冲突 使用一下方法解决
1.git rebase --abort 放弃合并, 回到rebase操作之前,如果时git pull --rebase 就会恢复到pull之前 ,如果时 git rebase 分支名 就会 恢复到合并之前 2.git rebase --skip 会将冲突 commit 丢弃(警告 尽量不要使用) 3.git rebase --continue 相当于 git commit -m '注释'; 4.git push
git commit -m ‘message’ 报错
方法一:跳过验证:
git commit -m "message" --no-verify
方法二:删除验证规则 不建议这么做。
删除.git的提交规则文件: rm -rf ./git/hooks/pre-commit
方法三:根据规则把代码改好在提交
-----------------------------------------------------------------------------------------------------
下面了解一下pre-commit
pre-commit 是验证代码使用的钩子
在pre-commit 中加一些规则可以在 git commit -m ‘ 注释’ 提交之前验证 (如果验证不通过阻止提交)