1. 初始化一个windows目录为git管理的目录,也叫作git工作区: git init
在git工作区中,普通的文本文件和程序文件都可以被管理,还有图片,音频,视频等文件也可以被管理
不过呢,只有普通的文本文件和程序文件可以被追踪到内容的改变。但是图片和多媒体文件,是不能被追踪
到内容的改变的,只能记录大小的改变.最后特别注意的是,word等office文件,都是二进制文件,也不能被
追踪到内容的改变,也只能记录大小的改变。
2. 全局配置统一标识:
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
3. 把一个文件的修改记录加入到版本库中:
git add 文件名.后缀名
git add . //点号表示把当前目录下所有的文件加入到版本库
4. 查看版本库状态: git status
5. 查看文件发生了什么具体的变化: git diff 文件名.后缀名
6. git commit -m "提交操作的说明文字" ,把修改记录提交到分支
git add命令首先把修改记录添加到暂存区(stage),然后git commit命令把修改记录
添加到分支(branch)。本地版本库分为暂存区和分支两个部分,暂存区只有一个,但是
分支有多个,首次创建版本库的时候,git会默认创建一个master分支。
git add命令可以先执行多次,然后再执行一次git commit命令添加到分支
7. git log,查看所有的提交到分支的操作,在显示的信息中,可以看到commit后面有一串很长的16进制
标识符,这个标识符唯一的标识了每一次的提交操作
git log --pretty=oneline,简化提示信息
8. git reset --hard commit标识符的前5个字符,表示回到指定的commit记录
9. git reflog,查看之前commit被改变的所有记录
10. git checkout -- 文件名.后缀名,
1. 新文件需要执行一次commit操作之后,才能用次命令找回删除的内容。
2. 新文件执行add命令后,如果删除这个新文件,可以通过此命令恢复
当然,如果新建的文件,没有执行过git add命令,那么删除后,也是无法找回的
也就是说本命令只能根据暂存区记录恢复文件
11. git rm --cached 文件名.后缀名,把文件的修改记录从版本库的暂存区删除,这样的话,无法再通过
git checkout --hard 文件名.后缀名 找回
注意:如果修改记录被添加到了分支的话,也就是执行了git commit 命令的话,会产生
commit标识符,那么只要能找到commit标识符,那么执行git reset --hard commit标识符命令
就还是能找回。
12. git remote add 远程库名(默认origin) 远程库地址 ,在本地添加远程库地址
13. git remote -v 查看所有远程库地址
14. git remote rm 远程库名 删除远程库
15. git push -u 远程库名(默认origin) 远程库分支(默认master) 推送本地库记录到远程库
16. git pull 远程库名称(默认origin) 远程库分支名称 (默认master) 从远程库拉取文件记录到本地库
本命令适合新建库和已有库的拉取。如果本地库要关联一个全新的远程仓库,可能会报一个错:
fatal: refusing to merge unrelated histories,这个在git pull命令的末尾加上一个参数,
--allow-unrelated-histories,就可以了
17. git clone 远程库地址 通过从远程库拉取到本地在本地创建一个新的版本库
18. git branch 分支名称 创建分支
19. git branch 查看分支,当前工作的分支名称前面有*号,还有命令行目录路径的末尾有个括号,里面显示
的也是当前工作的分支
20. git checkout 分支名称, 切换分支
21. git checkout -b 分支名称,创建分支并切换到新分支。
22. git merge 分支名称, 在当前分支下把指定分支的记录合并过来,标准模式下,不会记录合并信息
git merge --no-ff 分支名称,这个模式下会记录合并信息
23. git log --graph --pretty=oneline --abbrev-commit, 查看合并信息
24. git branch -d 分支名称,删除分支,只能在合并后才能删除
git branch -D 分支名称,强制删除
25. git branch 要找回的分支的名称 commit标识符,找回删除的分支
26.git revert commit——ea3c13085083b805b83b887c1efcf94900579444 撤回已经commit的记录
分支工作流程:
1. 创建新的开发分支,在开发分支上面开发新的功能
2. 新功能开发完毕,再切换到master分支,把开发分支的内容合并到master分支来
3. 合并完分支后,把开发分支删除
分支合并冲突:
1. 首先在新分支修改index.js文件,在文件第二行添加一行文字,然后git add && git commit -m "注释"
2. 切换到master分支,也修改index.js,同样在第二行添加一行文字,然后提交
3. 在master分支,执行合并命令,合并开发分支的记录,这时候会出现冲突,提示信息出现CONFLICT.
4. 打开index.js查看,内容如下:
第一行js代码
<<<<<<< HEAD
第三行js代码
=======
第二行js代码
>>>>>>> dev-user
HEAD指向的是发生冲突的行数,HEA下一行开始,就是当前分支本行的代码
双虚线下面的代码,是开发分支在本行的代码
两个分支都要占用同一行的空间,所以产生了冲突
把箭头符号的行和双虚线的行删除掉,剩下的内容,看情况合并
例如:
第一行js代码
第三行js代码
第二行js代码
修复好内容后,执行提交操作,可以再执行合并分支命令确认一下
没问题的话,接下来就可以删除掉开发分支
26. git branch -a , 查看远程分支
27. git fetch, 拉取远程分支列表,而不会在本地创建没有的分支
28. git push 远程库名 -d 远程分支名 ,删除远程分支
29. git remote show 远程库名,显示远程库中与本地库中不匹配的分支名称,也就是执行了git
说,本地库中可能出现了远程库已经不存在的分支
30. git remote prune 远程库名,同步删除远程库和本地库中的不匹配的分支
31. git tag commi标识符, 给commit标识符取一个容易理解的名字
32. git tag, 查看所有标签
33. git show 标签名,查看标签的详细信息
34. git tag -d 标签名,删除标签