创建版本库:
在当前目录初始化一个Git仓库:git init
工作区和暂存区:
- 将文件提交到暂存区(stage):git add <文件名>
- 将暂存区(stage)的文件提交到master:git commit –m <“备注”>
- 查看工作区状态:git status
- 查看工作区文件被修改的内容:git diff
撤销修改:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout - <文件名>。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <文件名>,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本控制,不过前提是没有推送到远程库。
版本控制:
回退到之前版本:git reset –hard HEAD^
#(恢复到上一个版本就是HEAD^,上上个版本就是HEAD^^,……)
跳到指定版本:git reset –-hard <版本id>
查看提交历史:git log 或 git log --graph –pretty=oneline –abbrev-commit
查看之前之后提交的所以历史:git reflog
远程仓库:参考
关联一个远程库(例如关联github的库):git remote add origin [email protected]:<用户名>/learngit.git
第一次往远程库推送内容:git push –u origin master
向远程库推送内容:git push origin <分支名>
从远程库克隆:git clone [email protected]:centos11/giitskills.git
分支管理:
创建与合并分支:
- 查看分支:git branch
- 查看分支合并情况:git log --graph --pretty=oneline --abbrev-commit
- 创建分支:git branch <分支名>
- 切换分支:git checkout <分支名>
- 创建并切换到该分支:git checkout –b <分支名>
- 合并某分支到当前分支:git merge <分支名> (默认快速合并)
- 普通分支合并:git merge --no-ff -m “备注” <分支名>
- 删除分支:git branch –d <分支名>
- 强制删除分支:git branch –D <分支名>
多人协作:
- 查看远程库信息,使用git remote -v;
- 本地新建的分支如果不推送到远程,对其他人就是不可见的;
- 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
- 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
- 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
- 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
标签管理:
创建与查看标签:
创建一个新标签:git tag <tagname> (默认为HEAD创建一个标签)
为指定id创建标签:git tag <tagname> <commit_id>
指定标签信息:git tag –a <tagname> -m “备注“
查看所有标签:git tag
查看历史提交的commit id:git log --pretty=oneline --abbrev-commit
查看标签信息:git show <tagname>
操作标签:
推送一个本地标签到远程:git push origin <tagname>
一次推送全部尚未推送到远程的本地标签:git push origin –tags
删除一个本地标签:git tag –d <tagname>
删除一个远程标签:git push origin: refs/tags/<tagname>