首先git是分布式,svn是集中式的
git使用
1.pwd:查看当前文件目录
2.cd :跳转到家目录,(家目录:当前我这个账号的施有空间,具体我也没动,看图)
3.创建本地账号和邮箱
$ git config --global user.name "lxy"
$ git config --global user.email "1125849544@qq.com"
4.ls -a :显示隐藏文件
5.正式进行提交代码,流程:创建文件/修改文件内容--》查看文件状态(红色表示未添加到缓存中)--》添加到缓存--》查看文件状态(绿色)--》提交
1.touch c.php //创建文件
2.git status //查看文件状态
3.git add c.php //提交文件到缓存中
4.git commit -m "第一次提交" //提交代码
6.版本库的忽略设置,git add . 可以将所有修改添加等文件添加缓存,但是有些文件可能我们不想提交,那么就需要忽略一些文件
7.从版本库中删除,当我们已经把文件提交到版本库,但是这个文件本来不需要提交的,需要删除
(1).将本地和版本库中的一起删除了
git rm 2.php
(2)本地不删除。版本库中删除
git rm --cached a.php
8.修改文件名,将a改成b
git mv a.php b.php
9.查看日志
git log
10.修改最后一次提交的描述,(i,编辑;esc,:wq退出编辑;)
git commit --amend
11.文件在暂存区的操作
git restore --staged a.php //在缓存区把a删除
git restore a.php //将a上一次的修改删除
12.分支命令
git branch //查看分支
git branch xiaoyun //创建xiaoyun分支
git checkout xiaoyun //切换到小云分支
git checkout -b yunhang //创建并切换到远航分支
13.合并分支
1.git checkout xiaoyun //切换到xiaoyun分支上
2.git rebase master //将xiaoyun分支的起始点移动到当前master分支的最后的位置
3.git merge xiaoyun //将xiaoyun分支内容合并到master上
4.git branch -d xiaoyun //合并之后 本地删除xiaoyun分支
5.git branch -D xiaoyun //没合并,但是该分支代码确定不要了 本地删除xiaoyun分支
6.git push
7.git push origin --delete xiaoyun //删除远程分支
14.当两个分支都改了同一个文件,合并到主分支的时候 会发生冲突 ,需要手动解决冲突
vim a.php //编辑a.php文件内容,编辑的时候 将冲突删除即可
vim进入编辑文件模式,按 i 进行编辑,按esc和:wq退出编辑
cat a.php //查看a.php文件内容
15.查看已合并分支,查看为合并分支
git branch --merged //查看已合并分支
git branch --no-merged //查看为合并分支
16.临时存储区,比如在a分支写了一部分功能,因为还没写完,不提交代码,但是这时我需要切换到别的分支,就会提示没有提交,不能切换,这时候可以将a分支内容进行临时存储
git stash //添加到暂存区
git stash list //查看缓存列表
git stash apply //恢复缓存区
git stash drop stash@{0} //恢复缓存区后,缓存区仍然存在缓存日志,这个命令是删除这些缓存
git stash pop //恢复缓存区后直接删除这些缓存
17.标签(当程序完成一版,可以打个标签。比如1.0版本 2.0版本)
git tag 1.0
18.rebase 分支合并优化,将当前分支的起始点移到master分支的最后位置;解决 冲突应由分支解决,而不是 master解决 的问题;使日志更加简洁;
优化前
优化后
19.填写ssh公钥
生成秘钥
使用ssh连接Github发送指令更加安全可靠,也可以免掉每次输入密码的困扰。
在命令行中输入以下代码(windows用户使用 Git Bash)
ssh-keygen -t rsa
一直按回车键直到结束。系统会在~/.ssh
目录中生成 id_rsa
和id_rsa.pub
,即密钥id_rsa
和公钥id_rsa.pub
。
向GitHub添加秘钥
点击 New SSH key
按钮,添加上面生成的 id_rsa.pub
公钥内容。
20.克隆git上的项目
git clone git@github.com:xiaoyunliu123/meituan.git
21.关联远程仓库推送代码
(1)创建本地库并完成初始提交
echo "# hd-xj" >> README.md
git init
git add README.md
git commit -m "first commit"
(2)添加远程仓库
git remote add origin git@github.com:xiaoyunliu123/meituan.git
(3)查看远程库
git remote -v
(4)推送数据到远程仓库
git push -u origin master
(5)删除远程仓库关联
git remote rm origin
22.检出远程分支到本地
1.git clone //检出远程项目
2.git branch -a //查看远程分支
3.git pull origin xiaoyun:yuanhang //检出远程xiaoyun分支到本地的yuanhang分支