1. git是一个分布式版本系统,客户端从远程仓库克隆代码不仅是从远程仓库提取当前文件的版本快照,而是把整个远程代码仓库镜像进行一次快照,因此,即使远程仓库出现故障,依靠任何一个客户端都可以将远程仓库的所有版本记录恢复。
2. git文件的三种状态
已修改(modified) 文件存在工作区,
已暂存(staged) 文件存在暂存区
已提交(commited) 文件存在git仓库
3. 初始化一个本地仓库
git init
4. 查看文件状态
git status
5. 将文件添加到暂存区,指定文件路径与linux一致
添加所有文件: git add *
添加某个文件: git add fileName
6. 将某个文件从缓存区去除,工作区仍然保留
git rm --cached fileName
git restore --staged fileName
7. 提交文件
将暂存区的文件提交: git commit -m '本次提交的说明'
将所有文件提交(包括不在暂存区的文件): git commit -am '本次提交的说明'
8. 查看提交日志
查看所有操作日志: git reflog
查看所有提交记录信息:git log
一行内显示提交记录id和备注: git log --pretty=oneline
9. 查看某个文件本地仓库与工作区的区别
git diff head -- fileName
10 撤销对某个文件的上一次操作
git reset HEAD fileName
11 版本回退
指针回退到上一个版本,每个^代表一个版本:git reset --hard HEAD^
往上回退N个版本:git reset --hard HEAD~N
切到指定id的版本,只需id的前面能确定唯一性的部分即可:git reset --hard id
12. 查看git仓库里面的文件目录
git ls-files
13. 文件删除,本地工作区一并删除
1. 删除文件后执行 git add和git commit
2. git rm fileName
14. 切换分支
查看当前仓库所有分支,*号代表当前所在分支
git branch
查看本地和远程所有分支
git branch -a
切换到指定分支,不存在则创建并切换
git checkout -b branchName
15. 分支重命名,m表示重命名,M表示强制重命名,已存在则覆盖
git branch -m oldBranchName newBranchName
16. 合并分支
git merge branchName
17. 删除分支,不能删除当前分支,-D强制删除
git branch -d branchName
18. 推送分支
推送本地分支到远程
git push origin branchName
删除远程分支(本地分支还保留)
git push origin :branchName
拉取远程分支到并在本地创建指定分支
git checkout -b branchName origin/branchName
19. 获取远程仓库最新的状态
git fetch
20. 拉取指定远程分支代码
git clone -b branchName gitAddress
21. 标签管理
git tag tag_name 给当前本地分支代码打个标签,默认已最后一个提交的备注为备注
git tag tag_name -m 'xxx' 给当前本地分支代码打个标签并添加备注
git tag 查看所有标签,如果查不到远程分支的tag则git fetch更新下远程分支状态
git tag -d tag_name 删除本地标签
git push origin tag_name 将标签推送到远程
git push origin --tags 推送所有本地标签到远程
git push origin:refs/tags/tag_name 删除远程一个分支