1

Git介绍

Git是分布式版本控制系统,Git仓库由3部分组成:工作区、暂存区、历史记录区。

  • 工作区:在 git 管理下的正常目录都算是工作区,我们平时的编辑工作都是在工作区完成
  • 暂存区:临时区域。里面存放将要提交文件的快照
  • 历史记录区:git commit 后的记录区

image.png

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可以清除掉这次的提交而且不影响最后一次的提交内容。

参考资料

SSH、shell、Xshell 、bash、Git、Git bash 、Git CMD、Git shell

GitFlow+Gitlab工作流


贝er
58 声望6 粉丝

不仅仅是程序员