1. 配置user信息:
git config --global user.name “your_name”
git config --global user.email “your_email”
2. 显示config信息:
git config --list --global
3. 建立Git本地仓库:
把已有项目代码的纳入Git管理:①、进入Git文件夹;②执行命令:git init
新建项目纳入Git管理:git init your_project (新建项目的文件夹)
4. Add文件(支持*通配符):
git add “文件名”
git add *
git add –u : 将被修改或删除的文件提交到暂存区(不包括新建文件)
git add –A : 将被修改或删除的文件或新建文件提交到暂存区
5. 仓库内存说明:
add 操作后,文件是add暂存区;commit操作后,才提交至本地仓库;push后提交到
6. 查看git操作状态:
git status
7. 文件commit到本地仓库:
git commit –m”操作信息说明”
8. 查看git操作日志:
git log
git log – oneline :简洁查看日志
git log –n2 :查看最近第二条日志
git log – oneline –n2 :简洁查看最近两条日志
git log –all –graph :图像化查看所有分支日志
9. 简便重命名:远程仓库
git mv 旧文件 新文件名
10. 根据sha1码查看文件类型:
git cat-file -p SHA1
tree相当于文件夹,blob相当于文件
11. 创建、切换分支:
git branch 分支名 : 创建分支
git checkout 分支名 : 切换分支
git checkout –b 分支名 : 创建并切换到新分支
12. 查看所有分支:
git branch –av
13. 删除分支:
git branch –d 分支名 //优先
git branch –D 分支名
14. 修改最新commit的信息:
git commit –amend //进入后,同虚拟机vim操作修改
15. 查看工作区和暂存区代码区别:
git diff :查看所有文件的区别
git diff --文件名 :查看指定文件的区别
16. 恢复暂存区到未add之前的状态:
git reset HEAD :让暂存区恢复和HEAD一样
git reset HEAD --文件名 文件名 :让暂存区恢复和HEAD一样
git diff –cached :比较暂存区和HEAD的区别(恢复后什么也没有)
17. 工作区文件恢复和暂存区一样:
git restore 文件名
18. 删除最近的某些commit:
git reset –head SHA1码(commitid) :A B C 要删除A,则SHA1码为B的
19. 查看commit文件差异:
git diff SHA1 SHA1
20. 删除文件:
git rm 文件名
21. 暂时储存工作区内容:
git stash
git stash lish :查看stash列表
git stash apply :恢复暂存stash的工作区内容,stash列表还存在
git stash pop :恢复暂存stash的工作区内容,stash列表不存在
【场景】工作区修改未完成,此时需要对分支代码紧急修复,则先将未完成的代码stash,此时分支会恢复未修改的模样,然后分支紧急修复完后,再恢复未完成的工作区
22. 指定不需要Git管理的文件:
根目录下创建.gitignore文件,文件指定忽略的文件类型,如.jar
23. 本地仓库同步到github:
github远程仓库协议链git@github.com:OooooOz/workspace-zwh.git
24. 关联一个远程仓库、用origin代替链:
git remote add origin git@github.com:OooooOz/workspace-zwh.git
25. 查看本地仓库关联的远程仓库情况,:
git remote –v
26. 删除关联远程存库:
git remote remove origin
27. 远程仓库拉取到本地:
git pull <远程主机名> <本地分支名>:<远程分支名>
git fetch <远程主机名> <本地分支名>:<远程分支名>
pull=fetch+merge
pull=fetch+merge
28. 公私钥生成:
ssh-keygen -t rsa
29. push提交远程仓库:
git push <远程主机名> <本地分支名>:<远程分支名>
【举例】git push origin master:master
【注意】直接git push 会将当前本地分支推送到对应远端同名分支,如果远端没有同名分支则会新建同名分支
30. 第一次pull的时候,两个仓库的差别非常大,git拒绝合并两个不相干的东西,解决:
git pull origin master --allow-unrelated-histories