git 利器

  • 目录
  • git建版本库
  • git别名设置
  • git基本配置
  • git基本命令
  • git分支管理

git创建版本库

1
2
git init # 把当前目录变成git可管理的仓库
生成的.git目录是用来跟踪管理版本库的,称为git的一个版本库

git别名设置

1
2
3
4
为命令设置别名
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch

git配置

1
2
3
每台机器自报家门
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
1
2
优先级从高到低是
.git/config--> --global --> system
1
2
3
4
5
全局生效: 配置保存在/etc/gitconfig
[root@wxq-srv git_work]# git config --system user.name "wxq"
[root@wxq-srv git_work]# cat /etc/gitconfig
[user]
name = wxq
1
2
3
4
5
6
7
8
当前用户所有仓库生效:配置保存在~/.gitconfig
[root@wxq-srv git_work]# cat /root/.gitconfig
[user]
name = wxq
email = you@example.com

[root@wxq-srv git_work]# git config --global user.name "wxq"
[root@wxq-srv git_work]# git config --global user.email "you@example.com"
1
2
3
4
5
6
7
8
9
10
只对某仓库生效:配置保存在reponame/.git/config
[root@wxq-srv git_work]# git config user.name "wxq1"
[root@wxq-srv git_work]# cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[user]
name = wxq1

基本命令

1
2
3
4
5
6
7
git log  # 每一次提交的记录
git reset --hard HEAD^ #HEAD表示当前版本,HEAD^^表示上上个版本,依次类推,上100个版本是HEAD~100
git reset --hard $commit_id # 回到指定版本
git reflog # 只要改变都会在这里记录,用于回到未来的某个版本。
git add index.html # 添加更改至state暂存 区
git reset HEAD index.html # unstage 退出暂存区
git diff HEAD -- readme.txt # 查看当前工作区和版本库有什么不同

放弃修改

除了版本回退外,只要未commit之前都可以放弃工作区所做的修改。
如果有add 动作,需要先从暂存区回退到工作区git reset HEAD index.html
如果没有add动作,可直接放弃修改git checkout -- index.txt
或者可以这么理解git checkout -- index.txt 都会从暂存区或版本库(优先从暂存区)恢复到工作区.

分支管理

1
2
3
4
5
6
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>

待续