来了新公司,不能用sourceTree了,只能用命令行了。之前习惯了可视化操作,对于命令只是略知一二,没办法从头开始学习咯!!!本人新手写错了,一定请大家留言指正!!
这里有一张图,可以清晰一点认识git
从常用的学起:
1.git diff和git status
提交代码前得先确认做了些什么改动吧。git status查看当前状态:
一目了然,然后查看做了什么改动:git diff,按enter查看下一行,按q退出查看!!还有 git diff --staged查看已经stage的改变过的文件。
2.git add
如果你发现你修改的文件没有staged,可以用git add添加之后,就可以commit了!
git add . 可以staged所有未staged文件
3.git commit
使用git commit -m "commit message"可以提交当前已经staged的文件
4.git push origin master
提交已经commit的文件
5.git log
查看已经提交过的commit的log
git reflog可以查看每一次命令的信息。由此可以看到版本的id。
使用git reset --hard <id>从而达到任意版本切换
6.git checkout --
使用git checkout -- <file>可以放弃更改(discard changes)
7.git rm --cached <file>
不再跟踪某个文件
8.git branch
git branch(无参数) 列出本地分支,当前分支用*标注。
git branch -r 列出远程分支
git branch -a 列出所有分支(本地和远程)
git branch -d <branchname> 删除名为“branch name”的本地分支
git branch -d -r <branchname>删除名为“branch name”的远程分支(慎用!!!)
9.git reset
HEAD代表当前版本,HEAD^代表前一个版本,几个^就代表是前几个版本,HEAD~100代表前100个版本。
HEAD是一个指向当前版本的指针,使用git reset只是改变了,指向的内容。
git reset --hard HEAD^ 本地分支回滚到前一个版本。(只是本地分支回滚)
git reset --hard <commit id>可以回到任意一个版本(包括之前回来后废掉的那个版本,只要id正确)
10.git checkout --
git checkout -- <file> 让工作区的file回到修改之前的状态。(回到上一次commit或者add之前的状态)
注意git checkout没有 --是对分支的操作。不能把两个命令弄混了
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
you are not allowed to upload merges
这个时候很可能是你本地分支不止一个commit没提交!(最好是每次commit提交一次)就可以用到git rebase:向前提交!