Git 常用命令
1.认识Git
(1)什么是git?
分布式版本管理系统
(2)svn与git的区别?
svn是集中式版本控制系统,版本库放在中央服务器,必须联网才能工作。
集中管理方式可以在一定程度上看到其他工作人员在开发什么,管理员也可以轻松掌握每个人的权限。
相较于优点,缺点也很明显:服务器单点故障(服务器挂了代码就没了);容错性差。
远程仓库github
SSH为Secure Shell(安全外壳协议)的缩写,专为远程登陆会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
需要在github上配置SSH密钥
2.Git常用命令
要在项目文件夹里打开git,新建一个pr = pull request
git三种状态:
已修改modified,在本地数据库中修改了文件,但还没保存到数据库中
已暂存staged,对一个已修改的文件的当前版本做了标记,使之包含在下次提交的快照中
已提交committed,已提交表示数据已经安全地保存
克隆项目
$ git clone https://github.com/libgit2/libgit2
查看当前分支状态,显示文件变更
$ git status
获得简短的输出结果 $ git status -s $ git status --shrot
新建分支
新建分支 $ git branch fix0001
进入分支 $ git checkout fix0001
创建分支并进入(常用) $ git checkout -b fix0001
列出所有分支
$ git branch
删除分支
$ git branch -d fix0001
将fix0001分支改名成tmp
$ git branch -m fix0001 tmp
查看已经合并的分支(未加*的可以删掉)
$ git branch --merged
查看所有包含未合并工作的分支(删除会失败,-D强制删除)
$ git branch --no-merged
添加提交
将文件添加到《暂存区》
$ git add a.txt
将《暂存区》的所有内容提交到当前分支
$ git commit
vim模式: i切换到输入模式
先Esc再输入:wq退出
不用进入vim的世界
$ git commit -m "balabala"
删除文件
$ git rm a.txt
查看历史
$ git log(用q退出)
会输出你的提交历史、各个分支的指向以及项目的分支分叉情况
$ git log --oneline --decorate --graph --all
将本地仓库的提交上传到远程
$ git push origin fix0001
--force强推,以自己本地操作为准
$ git push origin fix0001 --force
合并分支及变基
fix0001分支的操作合并到master分支
$ git checkout master
$ git merge fix0001
将experiment分支变基到master分支
$ git checkout fix0001
$ git rebase master
丢弃本地的merge
$ git merge --abort
第二天继续干活,先更新master
$ git checkout master
$ git pull $ git checkout fix0001 $ git rebase master
Git从远程分支获取最新的版本到本地有两种命令:
$ git pull:相当于是从远程获取最新版本并merge到本地
git fetch更安全,可以查看更新情况,再决定是否merge
Pull = Fetch + Merge
Pull -r = Pull --rebase = Fetch + Rebase
IDEA中与"Run"、"Builld"、"Terminal"并排的"Git"(可能需要配)中的便捷操作
需要强推代码到以前的分支: 选择某个历史分支,右键"Reset Current Branch to Here",网页上代码不要刷新,选择"Hard"模式或者其他,然后按照网页的代码重新修改 某个文件需要回退: 右键文件名,选择Git,再选择"Rollback",然后点击Rollback即可
Git对标签的管理:很少用
2.Rebase与Merge详解
还没写,有点难嗷