git的操作:
初始化git
git init
配置使用git仓库的人员信息
git config --global user.name "name"git config --global user.email you@yourdomain.example.com
添加文件
git add a.name
git add .
删除文件
git rm a.name
git rm –r * (进入某个目录中,执行此语句,会删除该目录下的所有文件和子目录)git rm --ached f1 (删除文件f1,不会删除本地目录文件,只删除index中的文件记录;将已经git add的文件remove到cache中,这样commit的时候不会提交这个文件, 适用于一下子添加了很多文件, 却又想排除其中个别几个文件的情况.)
提交当前工作目录的修改内容
git commit -m "some message to work"
git的查看
查看配置信息:git config --list
查看git库的状态:
git status
查看git历史log信息:
git log
只显示1个log信息:
git log -1
显示log的详细信息:
git log --stat -summary
git show
Git checkout
3.9.1. 切换到分支1) 创建一个新分支,并切换到该分支上
git checkout –b 新分支名
2)切换到某个已经建立的本地分支local_branch
Git checkout local_branch
(使用cat .git/HEAD后,显示refs:refs/heads/ local_branch)
3) 切换到服务器上的某个分支remote_branch
Git checkout remote_branch
(远程分支remote_branch可以通过 git branch –r 列出)
4) 切换到某个commit id
Git checkout commit_id
(使用cat .git/HEAD后,显示commit_id)
5) 切换到某个tag
Git checkout tag
(使用cat .git/HEAD后,显示tag)
注意: 除了1)和2)外,其余三种都只是切换到了一个临时的( no branch )状态 (this head is detached),这时用 git branch 可以看到处于(no branch)上, cat .git/HEAD 看到指向相应的commit id。 这个(no branch)只是临时存在的,并不是一个真正建立的branch。 如果此时执行2),则这个(no branch)就自动消失了;如果执行1), 则创建新分支 new branch,并把这个(no branch)挂到这个新分支上,此时cat .git/refs/heads/new_branch 可以看到已经指向了刚才那个commit id。
3.9.2. 用已有分支初始化新分支
执行下面的命令,在切换到某个已经建立的local branch或者某个remote branch或者某个commit id 或者某个tag的同时,创建新分支new_branch,并且挂到这个新分支上。
1) 切换到某个已经建立的本地分支local_branch,并且使用此分支初始化一个新分支new_branch。
git checkout –b new_branch local_branch
2) 切换到某个远程分支remote_branch,并且用此分支初始化一个新分支new_branch。
Git checkout –b new_branch remote_branch
3) 切换到某个commit id,并建立新分支new_branch
Git checkout –b new_branch commit_id
4) 切换到某个tag,并建立新分支new_branch
Git checkout –b new_branch tag
3.9.3. 还原代码
例如 “git checkout app/model/user.rb” 就会将user.rb文件从上一个已提交的版本中更新回来,未提交的工作目录中的内容全部会被覆盖。
git branch -vv
git branch –d 分支名