学会使用github
- 每个人在https://github.com/上注册账号,上传一些自己的代码或者文档。学会checkin checkout,clone,fetch,pull 等命令。
Git 基础命令
git init创建一个新的仓库,并且开始对当前目录进行追踪。会在当前文件夹下创建.git目录。包含了当前仓库的信息。- —bare 在当前目录或者目标目录创建裸库(只包含版本信息,不包含项目文件),可以用来分享本地版本库的信息。
git clone创建一个远程仓库的拷贝,包含项目文件,历史,还有分支。- —bare 只拷贝项目的版本信息,不包含项目文件
- —mirror 和—bare 功能类似,但是会映射本地到远程分支
- —branch 只下载某一个分支
- —depth 用来指定克隆深度,
--depth 1表示只包含最近一次 commit 信息。 - —shallow-since 只拷贝指定指定时间后的信息
--shallow-since="2020-01-22 00:00:00" - —shallow-exclude 不包含指定的分支或tag,可以多次添加
git add添加文件或修改到仓库- -p 添加部分指定的修改
- -e 显示diff文件,并且用户可以修改文件信息。
git commit提交修改内容并保存历史信息。- -a 自动提交所有修改和删除的文件,新添加的文件会被忽略
- -C 使用之前的log和作者信息提交改变,历史信息不会。
- -c 和 -C 类似,但是可以添加log信息。
- -p 提交部分指定的修改
- —fixup
- —squash
- —reset-author 当使用-C/-c 或者 cherry-pick 时改变作者信息
- —no-edit 便是提交修改,但是不添加log信息,
git commit --amend --no-edit提交代码,使用上一次的提交的信息,可以用于修改补充提交代码。 —amend 提交代码到上一次的修改中 和
git commit -c ORIG_HEAD类似 You should understand the implications of rewriting history if you amend a commit that has already been published. (See the “RECOVERING FROM UPSTREAMREBASE” section in git-rebase(1).)
git status查看当前文档的状态。- —branch 显示某一个分支的信息
git branch- —delete 删除某个分支
- —move 重命名分支
- —remotes 显示远程分支
- —all 显示所有的远程分支和本地分支
- —list 展示所有的分支
git merge把几个分支合并到一起- —ff 不产生一个新的commit,这是默认值
- —no-ff 创建一个merge commit ,可以查看到历史合并
- —abort 中止当前冲突解决进程,并尝试重建预合并状态。(重新再看一遍)
- —continue 在git合并由于冲突而停止后,可以通过运行git merge—continue来结束合并
git stash保存当前的修改内容- list 查看保存的内容
- apply 恢复,但是不删除保存的内容
- pop 恢复,同时删除保存的内容
- drop 删除保存的内容
git pull从仓库或其他的分支拉取并整合代码到本地分支 等于 git fetch + git merge- —rebase git fetch + git rebase
git push更新远端仓库- —all 推送所有分支
- —tags 将tag也推送过去
- —force 强制推送
- -u, —set-upstream 设置 upstream
git rebasegit log查看提交历史- —graph 查看分支合并图
- —pretty=online
- —abbrev-commit
git showgit checkout- -b 创建并切换到分支
- — file 切换到暂存区或版本库
git switchgit diff比较工作区和暂存区的区别- —cached 比较暂存区和版本库的区别
git resetgit reflog查看命令历史git rm从版本库中删除文件git remote查看远程仓库信息- add origin
- set-url origin
创建文件夹 git-study,初始化本地仓库
chaos-MacBook-Pro:myspace chao$ mkdir git-study && cd git-studychaos-MacBook-Pro:git-study chao$ git initInitialized empty Git repository in /Users/chao/myspace/git-study/.git/
由于本地没有文件
进入https://github.com/new,创建仓库 git-study 
- 理解分支
什么是主分支,一个人的项目和多个人合作的项目会有很大区别,一个人的项目搞搞主分支就行了,但是多人合作的项目会有很大区别,特别是同一个部分可能有两个人一起开发。
- 理解Tag
一个大的项目可能有多人合作开发,肯定会在一个合适的时候,大家都开发结束了,这个时候需要有项目管理人员做一个Tag(往往一个Tag 对应一个版本号),然后测试人员就取这个tag下的代码,其他人可以继续在主分支提交代码。测试人员测试OK后,运维人员就需要从这个tag上取代码下来,到线上环境去跑。
因此如果不做开发,分支用到的机会很少,但是Tag用到的机会几乎是百分之百的。
