Git-1
初始化git仓库(生成.git目录)
git init
将文件提交到暂存区(git status 状态为绿的)
git add <filename>
git add .
将文件从暂存区移除(在commit之前,将文件从绿色变为红色)
git reset <filename>
查看文件状态
git status
将暂存区的文件进行提交
git commit -m <message>
查看commit记录
git log
文件的四种状态
image.png
说明:
新建一个文件:untracked
git add filename : staged (git status显示状态为绿的)
git commit : 状态为 unmodified
再次编辑: modified
git对比仓库中文件和现有文件,如果没有差异,就是unmodified,否则就是modified。
常用git命令:
git add
git reset
git commit
git push
git status
git branch
git rebase
git merge
git cherry-pick
git stash
git pull
git fetch
git log
git reflog
git remote
git clone
设置命令别名:
alias
修改.git目录的config文件配置
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = git@github.com:xywanhh/myPlugins.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
// 新增alias
[alias]
ad = add .
cmm = commit -m
lg = log
rlg = reflog
co = checkout
cob = checkout -b
cod = checkout develop
com = checkout master
fc = fetch
cm = commit
st = status
pl = pull
ps = push
版本回退
git reset <commitID>
commitID使用全称和前七位都是一样的,都能唯一代表一个commit版本
不带参数,默认是mixed
想回到最新的commit点,可以直接git pull
git reset 34d42ef --hard
git reset 34d42ef --soft
git reset 34d42ef --mixed
--hard : 不保存所有的变更
--soft : 保留变更且变更内容出于staged
--mixed : 保留变更且变更内容出于modifed
分支 branch
git checkout -b <new branch name> <template>
template参数表示新的分支以哪个分支或者commitId作为模板创建。如果为空,则以当前所在分支为模板。
如果template的分支不是本地的,而是用远程仓来做,则需要加上origin
git checkout -b newBranchname origin dev
切换回已有的分支上去
git checkout master
查看所有分支
git branch
master
- dev (高亮)
高亮表示当前所处的分支
分支合并
git merge <branchName>
场景:
主线分支master
创建分支1.0.0
git checkout -b 1.0.0
在1.0.0分支上,新拉两个分支
git checkout -b dev1
git checkout -b dev2
回到主线,合并分支
git checkout 1.0.0
git merge dev1
git merge dev2
解决冲突(手动决定保留那些代码),并commit
git commit
远程仓库remote
本地新建分支,并push到远程仓库
git clone remoteUrl
git checkout -b dev
git push (报错)
git push --set-upstream origin dev (此时远程端有了dev分支)
拉取远程仓库信息
git fetch
git branch只能看到本地仓库的分支,看不到远程仓的分支信息
git checkout dev (新建的dev分支设置了上流分支dev)
拉取pull
git pull (效果等同于git fetch + git merge)
变基 rebase
master 有3个commit点 125
dev有4个commit点1234
然后变更dev为12534:
git rebase master
解决冲突
继续下一个rebase
git rebase --continue