Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git
1.首先初始化本地库
命令:git init
效果:
2.添加用户信息
一。项目级别
命令:git config --user.name Jiuer
命令:git config user.email 123@qq.com
效果:
二。系统级别
命令:git config --global user.name Jiuer
命令:git config --global user.email 123@qq.com
3.查看信息
进入.git文件夹:cd .git
查看config文件:cat config
效果:
进入根目录:cd ~
查看.gitconfig 文件:cat .gitconfig
效果:
4.创建文件
命令; vim text.txt
效果:
5.查看本地库的状态
命令: git status
效果:
6.将文件上传到缓存区
命令: git add 【file name]
效果:
7.提交到本地库
命令: git commit -m"提交的注释" [file name]
效果:
8.修改文件
命令: vim 【file name】
效果:
退出文编编辑器
按Esc后,输入 :wq
修改过后查看状态就会标红
需要重新上传
9.查看历史记录
命令git log
效果:
简洁显示
命令:git log --pretty=oneline
效果
命令: git log --oneline
效果:
命令:git reflog
效果:
10.版本控制
命令:git reset --hard 【部分索引值】
效果:
向后移动一个时间段
命令:git reset --hard HEAD^
n个^表示移动n步
亦可以使用
命令:git reset --hard HEAD~n
来向后移动n步
reset的指令
–hard:在本地库移动HEAD指针,重置缓存区,重置工作区
–sorft:只移动本地库的HEAD指针
–mixed:移动本地库的HEAD指针,重置缓存区
11.删除文件并找回
删除文件
命令:rm 【file name]
找回文件的前提是,文件已经上传到本地库了
因为在删除文件和修改时都会在本地库产生历史记录,所以将文件恢复的操作就是将其指针指向其未删除前的一个历史记录即可
根据命令:git reset --hard 【部分索引值】
12.比较文件
命令:git diff [file name]
效果:
也可以和本地库的历史版本进行比较
命令:git diff HEAD 【历史版本索引】 [file name]
效果:
在不指定文件名的时候回比较当前文件夹的所有文件
命令:git diff HEAD
效果:
13.分支
查看分支
命令: git branch -v
效果:
创建分支
命令:git branch [branch name]
效果:
选择分支
命令:git checkout [branch name]
效果:
冲突解决
冲突产生的原因:两个分支同时修改同一个文件的同一行,并提交到本地库则在合并的时候,就不知道一那个为准则了
效果:
解决方法
经过两个分支的着手人员的协商,进行手动修改文件
效果:
14.推送到远端库
创建远程链接
命令:git remote add 【别名】 【链接】
效果
删除别名
命令:git remote rm [别名]
向远端库推送文档
命令:git push 【别名】【branch name】
效果:
15.克隆
命令: git clone 【链接】
效果:
克隆报错
如果出现
这样的错误,执行以下命令
命令: git config – global http.sslVerify false
16.加入团队成员
会给被邀请的成员的邮箱发送一条邮件
然后点击View Invitation 后选择Accept 就可了
接着就可想当前的项目推送文件了
17.拉取文件
命令:git fetch 【别名】 【分支名】
效果:
这里只是将远程库的文件下载到本地,并没有改变本地库的文件
切换分支
想要查看下载下的内容就要切换到别名/分支名查看
命令:git checkout 【origin】/【分支名】
cat 【file name】
效果:
合并分支
想要合并到一起去就merge一下
命令:git merge [别名]/[分支名]
效果:
也可以使用一条语句
命令:git pull 【远程库别名】【分支名】
效果:
这样不能查看修改的内容,如果产生了冲突会很麻烦,还要重新移动指针,重新拉取,很麻烦,所以建议使用两步,在前面一步中可以切换分支,进行查看修改的内容,最后在确定不产生冲突时在进行merge操作会比较安全
18.冲突解决
冲突产生原因,因为下拉的不是项目的最新版,而推送,如果两个成员同时修改同一个文件的同一位置,再想远程库进行推送的时候,就会报错,解决方法同commit的冲突解决方法一致,修改文件重新推送即可。