一.基础命令
1.文件放进git仓库(提交代码)
git add <文件名>
git commit -m '关于本次提交的解释'
commit可以一次提交很多文件,可以多次add不同的文件
2.版本回退
- 穿梭前,
git log
查看提交历史,以便确定要回退到哪个版本 - 版本间穿梭,使用
git reset --hard commit_id
[HEAD]指向的就是当前版本 - 查看命令历史,
git reflog
3.创建与合并分支
- 查看分支
git branch
- 创建分支
git branch <name>
- 切换分支
git checkout <name>
或git switch <name>
[**switch命令是2.23版本以后] - 创建+切换分支
git checkout -b <name>
或git switch -c <name>
- 合并某分支到当前分支
git merge <name>
- 删除分支
git branch -d <name>
4.解决冲突与分支管理
当两个分支有冲突,无法合并时,必须手动解决冲突后,再提交。
通常,合并分支时,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并:
git merge --no-ff -m "merge with no-ff" dev
5.bug分支
- 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
- 当手头工作没有完成时,先把工作现场
git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场; - 在master分支上修复的bug,想要合并到当前dev分支,可以在dev用
git cherry-pick <commit>
命令,把bug提交的修改“复制”到当前分支,避免重复劳动。 - 开发一个新feature,最好新建一个分支;丢弃一个没有被合并过的分支,可以通过
git branch -D <name>
强行删除。
6.多人协作
- 查看远程库信息,使用
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
,如果有冲突,要先处理冲突。
7.tag标签管理
tag通常用于版本控制,Git中打标签先切换到需要打标签的分支上:
- 新建标签,
git tag <tagname>
,默认为HEAD,指定commit idgit tag v0.9 f52c633
- 指定标签信息,
git tag -a <tagname> -m '说明信息'
- 查看所有标签
git tag
- 删除本地标签
git tag -d <tagname>
- 删除远程标签
git push origin :refs/tags/<tagname>
- 推送本地标签到远程
git push origin <tagname>
及推送全部未推送的标签git push origin --tags
及推送全部未推送的标签
8.忽略特殊文件
忽略某些文件时,需要编写.gitignore
参考:廖雪峰Git教程