Git介绍
Git是分布式版本控制系统,Git仓库由3部分组成:工作区、暂存区、历史记录区。
- 工作区:在 git 管理下的正常目录都算是工作区,我们平时的编辑工作都是在工作区完成
- 暂存区:临时区域。里面存放将要提交文件的快照
- 历史记录区:git commit 后的记录区
Git常用命令
初始化新版本库:git init
全局设置:git config --global user.name "xzavier" git config --global user.email "xzavier.xxx.com"
克隆版本库:git clone "url"
查看分支:git branch
创建分支:git branch branch_name
切换分支:git checkout branch_name
创建+切换分支:git checkout -b branch_name
合并某分支到当前分支:git merge branch_name
重命名分支:git branch -m branch_name branch_new_name //不会覆盖已经存在的分支
重命名分支:git branch -M branch_name branch_new_name //会覆盖已经存在的分支
删除分支:git branch -d branch_name
强制删除分支: git branch -D branch_name
删除远程分支: git push origin : branch_name
拉取代码:git pull origin branch_name
查看更改:git status
查看更改细节: git diff file_name
查看谁修改过代码: git blame filename
回到上次修改: git reset --hard
添加单个文件:git add filename.js
添加所有js文件:git add *.js
添加所有文件:git add .
提交添加的文件:git commit -m "your description about this branch"
提交单个文件:git commit -m "your description about it" filename.js
push分支:git push origin your_branch_name
备份当前分支内容:git stash //在后面再讲讲这个
查看历史记录:git log
创建标签:git tag 1.0.0 //标签无法重命名
显示标签列表:git tag
切出标签:git checkout 1.0.0
删除标签:git tag -d 1.0.0
查看git远程网址:git remote -v
更改git远程网址:git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git
Git命令设置快捷别名
alias gs='git status'
alias gd='git diff'
alias ga='git add'
alias gc='git commit'
alias gck='git checkout'
alias gb='git branch'
alias gl='git log'
alias gthis='git rev-parse --abbrev-ref HEAD'
alias gpushthis='git push origin `gthis`'
alias gpullthis='git pull origin `gthis`'
alias gup='git remote update'
alias gpl='git pull origin'
工作中常遇到的冲突问题
- 创建的新分支的分支名已存在,需修改:
git branch -m branch_name branch_new_name
- 线上代码版本回退:
git log //查看提交记录
git reset --hard 目标版本号//回退到指定版本位置
- 撤销当前分支代码修改
git stash //相当于剪切功能,作用于缓存工作区、缓存区修改的内容,撤销后可通过git stash pop导出
git checkout ./指定文件
补充:
git reset、git revert、git checkout的不同:
git checkout用于切换分支或清除当前分支工作区修改的内容;
git reset用于回退版本,有三个参数可选,清除的区的范围不同,工作区、暂存区和历史记录区都可以被清除。
* \--soft:只影响历史记录区
* \--mixed:会影响到暂存区和历史记录区。也是默认选项
* \--hard:影响工作区、暂存区和历史记录区
git revert和git reset目的一样,都是修改版本,但是git revert会创建一个新的提交,它不影响其他提交的修改清除指定版本的修改:
git revert -n 版本号
git revert的使用场景:
比如:当在开发项目中时,修改提交了3次,分别加了一个功能,做完之后第2次的提交加的功能突然不需要了,通过git revert可以清除掉这次的提交而且不影响最后一次的提交内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。