基本命令
将目录变为Git可以管理的仓库
git init
将文件添加到仓库
git add <file>
将文件提交到仓库, description针对本次提交的说明
git commit -m <message>
查看仓库当前的状态
git status
查看修改的内容
git diff [file]
查看从最近到最远的提交日志
git log [--pretty = oneline]
查看所有执行过的git命令
git reflog
丢掉工作区内的修改[用版本库里的版本替换工作区的版本]
git checkout -- file
add 之后撤销修改
git reset HEAD <file>
git checkout -- file
删除一个文件
git rm
注意:HEAD指向的就是当前分支。
远程相关
关联远程库
git remote add origin git@serverName:path/repositoryName.git
第一次推送master分支的所有内容
git push -u origin master
推送最新修改
git push origin master
克隆远程仓库
git clone path
查看远程库的信息
git remote
显示更详细的信息
git remote -v
分支管理
查看分支 当前所在分支前方显示
git branch
创建新分支并切换
git checkout -b newBranchName
git switch -c newBranchName
创建分支
git branch branchName
切换分支
git checkout branchName
git switch branchName
将branchName分支上的内容合并到当前分支
git merge branchName
合并时生成新的commit
git merge --no-ff -m <message> dev
注意 :合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
删除分支
git branch -d branchName
注意:当两个分支同时修改了某个地方,在merge的时候不会成功,需要解决冲突。
查看分支合并图
git log --graph
其他
将当前工作现场”储藏起来”,等以后回复现场后继续工作
git stash
查看stash
git stash list
恢复
git stash apply
git stash drop
git stash pop
推送分支,将该分支上的所有本地提交推送到远程库
git push origin branchName
多人协作的工作模式
1、首先,试图使用git push origin branchName推送自己的修改;
2、如果推送失败,则因为远程分支比你的本地更新,需要先用pull试图合并;
3、如果合并有冲突,解决冲突,并在本地提交
4、没有冲突或者解决掉冲突后,再用git push origin branchName推送成功
如果git pull 提示no tracking information,说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to=<remote>/<branch> master
把本地未push得分叉提交历史整理成直线
git rebase
标签管理
发布版本时,通常现在版本库中打一个标签(tag)
新建一个tag,默认打在最新的commit上
git tag tagName
git tag tagName commitId
查看所有的tag,按照字母排序
git tag
查看标签信息
git show tagName
git tag -a tagName -m <message> commitId
删除tag
git tag -d tagName
推送tag到远程
git push origin tagName
推送全部未推送到远程的tag
git push origin --tags
删除已经推送到远程的tag
git tag -d tagName
git push origin :refs/tags/tagName