目录
1、配置user.name和user.email
git config --global user.name "zhangsan" // 若不想全局配置,删掉--global即可
git config --global user.email 123456@qq.com
【注】全局配置只需要配置一次
2、初始化仓库&克隆仓库
git init
git clone <仓库地址>
3、常用git指令
git add <file-name>// 跟踪文件
git rm <file-name>// 移除
git rm --cache <file-name>// 保留在目录中,但是不被跟踪
git reset HEAD <file-name>// 取消已修改的缓存状态
git commit// 提交代码,保存到本地仓库
git status// 查看文件状态和所在分支
git log// 查看提交历史
【拓展】git commit相关操作
(1)终端输入
git commit
(2)回车后自动跳转到编辑器中,按
i
进入编辑模式,输入提交信息,如fix:修改bug
等信息(3)按
esc
,再按:wq
退出编辑模式(4)上述1-3步可以综合为:
git commit -m 'fix:修改bug'
即可(5)
git commit -a
//提交所有修改的代码,无论是否被提交到暂存区
【拓展】git log相关操作
(1)
git log --pretty=online
// 一行显示(2)
git log --pretty=format:"%h-%an,%ar:%s"
//自定义格式(3)
%h
简化哈希%an
作者名字%ar
修改日期(距今)%ad
修订日期%s
提交说明(4)
git log --graph
// 图形化输出(5)
git log --all
// 查看所有提交信息
4、远程仓库
git remote add origin <仓库地址>// 本地仓库和远程仓库关联,其中远程仓库名为origin
git remote rename <new name>// 远程仓库更名
git push origin master// 将代码推送到远程仓库的master分支
5、分支branch
git branch --list// 查看当前所在分支和分支目录
git branch <branch-name>// 创建分支
git checkout <branch-name>// 切换分支
git checkout -b <branch-name>// 创建并切换到新分支
git merge// 合并分支
git push -u origin master// 使用-u,后面直接git push就直接推送到origin master 但要切换推送的分支 就需要重新运行这个指令
git fetch <远程代码库名>//将指定远程库的更新全部取回本地
git fetch <远程代码库名> <远程分支名> //可以指定拉取远程某个分支
git merge <远程代码库名>/<远程分支名>
//要是用git fetch拉取远程代码更新之后,git log FETCH_HEAD之后判断没有冲突后,用这个命令合并到本地分支上了
git checkout -b <本地分支名> <远程分支名>//fetch远程分支后,新建本地分支,用于跟踪远程分支
git branch -d <本地分支名>//删除本地分支
git push origin -d <远程分支名>//删除远程分支
6、reset撤销提交
git reset head// 撤销当前的提交
git reset head~// 撤销上一次的提交
git reset head~2// 撤销倒数第二次的提交
git reset head~ --soft// soft:只是撤销提交,撤销commit操作,但是不撤销git add的操作;不用--soft,既撤销git commit又撤销git add,但是修改还在,只是没有使其成为暂存状态。
git reset head~ --hard// hard:全部取消,撤销git commit,撤销git add,连修改都没了。一夜回到解放前。(不推荐使用)
7、rebase变基
执行以下命令:
git checkout B
git rebase A
结果:将B分支上的修改转移到A分支上
【注】使用rebase注意事项
若B已经推送到远程,B分支就不要进行变基。比喻:master比作地基,B分支比作一楼并推送到远程仓库,同事接着在一楼的基础上盖第二层,当B分支变基了,这栋楼就没有一楼了。变基会影响下一步的开发。