一、常用命令
1. git add
git add filename 增加单个文件
git add . 增加所有文件,不包括手动删除的
git add --all 增加所有文件,和后面加"."的区别在于,加all可以添加被手动删除的文件,而加“.”不行
2. git commit
主要是将暂存区里的改动给提交到本地的版本库
git commit -m "message"
如果不加-m参数,会调用vim编辑message。
3. git pull
拉取远程分支到本地,会同步更新本地仓库和远程仓库
git pull相当于 git fetch 跟着一个 git merge FETCH_HEAD
拉取远程服务器origin的某个分支
git pull origin <branchName>
4. git fetch
git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地
git fetch <远程主机名> <分支名> //注意之间有空格
git fetch origin master //从远程主机的master分支拉取最新内容
git merge FETCH_HEAD //将拉取下来的最新内容合并到当前所在的分支中
5. git log
git log --pretty=oneline 获取commit号
简写版 git log --oneline
git log --pretty="%cn committed %h on %cd"
git log --oneline -3 查看最近三次提交
git log --oneline --graph
6. git push <远程主机名> <本地分支名>:<远程分支名>
git push -u origin <branchName> 参数-u表示指定主机
git push -f -u origin <branchName> 把修改推到远程服务器
git push origin :<远程分支名>
则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,
等同于 git push origin --delete master(慎用,不建议使用)
git push --all origin 当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要 -all 选项
7. git reset 版本回退 git reset --hard commitId
git reset --soft <commitId> 仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
git reset --mixed <commitId> 仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
git reset --hard <commitId> 彻底将工作区、暂存区和版本库记录恢复到指定的版本库
HEAD指向的版本就是当前版本,HEAD表示当前版本最新的提交,
上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上n个版本写HEAD~n;
git reset HEAD^^
--hard的加与不加是有区别的,加上会同步工作区的代码,不加就只会同步暂存区的代码
8. git revert 版本反转
与git reset类似,关键是只是回退某一个版本,形成的新的修改,提交代码
9. git checkout
git checkout <branchName> 切换当前分支到指定分支
git checkout -b <branchName> 创建分支并切换到创建的分支 复制的是前一个分支所有的代码
git checkout -- '*.c' 更新所有的.c 文件
git checkout -- '*' 更新所有的文件
git checkout filename 放弃单个文件的修改
git checkout . 放弃当前目录下的修改
git checkout -- hello.rb #这条命令把hello.rb从HEAD中签出
10. git clone
git clone <版本库的网址> <本地目录名>
11. git merge
git merge <branchName> 合并某分支的内容到当前分支
12. git branch
git branch 列出本地已经存在的分支,并且在当前分支的前面用"*"标记
git branch -r 查看远程版本库分支列表