git使用笔记
git是一种分布式的版本控制工具。相比集中式的版本控制工具,其可以离线操作,并且可以在计算机上保存一个独立的版本,因此更加安全便捷。安装由于使用的是Windows系统,需要先在这里下载msysgit。安装完成后,可以在相应目录打开git bash,输入以下命令进行配置:“`git config –global user.name “xxx”git config –global u
·
git是一种分布式的版本控制工具。相比集中式的版本控制工具,其可以离线操作,并且可以在计算机上保存一个独立的版本,因此更加安全便捷。
安装
由于使用的是Windows系统,需要先在这里下载msysgit。
安装完成后,可以在相应目录打开git bash,输入以下命令进行配置:
“`
git config –global user.name “xxx”
git config –global user.email “example@xxx.com”
使用
创建本地仓库(mkdir)并进入,使用git init命令初始化仓库;提交可以使用git add filename 和git commit -m "description words"命令;并可以使用git status(或git status -s查看缩减版的信息,此时在每个文件前边有?/A/M/AM四种状态;?表示未追踪,即修改后未更新到暂存区;A即表示add;AM表示add到暂存区后又进行了文件修改)查看文件修改状态以及add和commit的状态;可以使用git log查看版本库中commit的历史详情,可以使用git diff查看已修改但未提交的改动。另外经常需要从github中clone源码,需要使用的命令是git clone repoName <dist_dir>.
git的使用需要理解工作区、暂存区和版本库:工作区为本地文件存储位置,暂存区一般位于.git/index文件,存储的是一般存储的是git add提价的更新,而使用git commit才能将文件的更新同步到版本库.git中。版本库和暂存区都有一个目录树,用于存放文件更新创建的对象索引。每次使用git add提交会在.git/objects对象库中创建提交的对象,而对象的ID会存放在暂存区的索引中;再次使用git commit时,会将暂存区的目录树结构同步到版本库中。当然,可以使用git reset HEAD命令将版本库中的目录树同步到暂存区中,这样git add提交的文件更新会被覆盖。同样,也可以使用git checkout master -- filename **(filename前有空格)** 将工作区的指定文件替换为暂存区的文件;最后,既然可以用版本库更新暂存区,可以用暂存区更新工作区,那么也有一个命令可以直接用版本库同时更新暂存区和工作区,使用可以使用 git checkout HEAD .或git checkout HEAD filename **(使用需谨慎)**
注意git rm file(工作区和暂存区的文件均会被删除)和git rm --cached(仅删除暂存区)的区别;git mv filename newFileName命令将暂存区中的文件删除,并将工作区相应的文件重命名后add到暂存区。
一般这些命名的使用顺序为git add,git status,git diff,git commit
```
### git add ###
git add filename1 filename2 ...
### git status ###
git status //查看工作区与暂存区的文件状态
git status -s //缩减版信息
### git diff ###
git diff //显示尚未同步到暂存区的改动
git diff --cached //显示已缓存的改动,注意区别
git diff HEAD //显示上次commit与当前的工作目录的差异
git diff --stat //结合上边的三个选项使用,只显示摘要不显示详细信息
### git commit ###
git commit -m "notation"
git commit -a //可以将已经add到暂存区中的所有文件更新到版本库(并自动为add到暂存区后又修改的文件使用git add同步到暂存区)
git log //查看提交的历史记录
git log --oneline //缩减版的信息
git log --oneline --graph //同时启用拓扑图
git log --user //查找指定用户的提交
git log --reverse //逆序显示
git log --since<date> --before<date> --after<date> --until<date> //使用日期条件查找
```
分支管理
```
git branch //显示已有分支
git branch <branchName> //创建分支
git checkout <branchName> //切换分支
git checkout -b <branchName> //创建并立即切换到该分支
git merge <branchName> //将branchName分支合并到当前分支
git branch -d <删除分支>
```
版本回溯
可以使用git log –oneline 和git reflog命令查看commit ID,并且使用git reset命令回溯到之前的版本
```
git reset --hard HEAD^ //返回上一个版本
git reset --hard commitID //返回到特定的commitID版本
```
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)