git 使用命令----

来源:互联网 发布:大众网络报2016停刊 编辑:程序博客网 时间:2024/06/05 15:49

用命令git add告诉Git,把文件添加到仓库:

$ git add readme.txt

用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"

运行git status命令看看结果:

$ git status

git diff这个命令看看文件变化:

$ git diff readme.txt

版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

$ git log

 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上
--pretty=oneline参数:

$ git log --pretty=oneline

我们要把当前版本“append GPL”回退到上一个版本“add distributed”,就可以使用git reset命令:

$ git reset --hard HEAD^

于是就可以指定回到未来的某个版本:

$ git reset --hard 3628164

Git提供了一个命令git reflog用来记录你的每一次命令:

$ git reflog

注:git管理的是修改 所以当修改过后一定要先见文件add到缓存区  然后提交  commit提交的是缓存区中的修改
$ git checkout -- readme.txt

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。


git checkout -- file命令中的“--”很重要,没有“--”,就变成了“创建一个新分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:

$ rm test.txt

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且commit:

$ git rm test.txt

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- test.txt
注:在经过处理之后,修改的只是本地的缓存 若要提交 需执行
$ git commit -m "remove test.txt"

注:如果用rm <file>删除(或者资源管理器里删除),删除操作没有进入stage,所以用git reset -- <file>恢复

如果用git rm <file>删除,删除操作已进入stage,所以用git reset HEAD <file>恢复

两种情况下,git status都会给出详细提示如何恢复:

情况1:

# Changes not staged for commit:

#   (use "git checkout -- <file>..." to discard changes in working directory)

情况2:

# Changes to be committed:

#   (use "git reset HEAD <file>..." to unstage)

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch name

切换分支:git checkout name

创建+切换分支:git checkout -b name

合并某分支到当前分支:git merge name

删除分支:git branch -d name

我们创建dev分支,然后切换到dev分支:

$ git checkout -b devSwitched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev$ git checkout devSwitched to branch 'dev'

git branch命令查看当前分支:

$ git branch* dev  master

git branch命令会列出所有分支,当前分支前面会标一个*号。

切换回master分支:

$ git checkout master
合并分支
$ git merge dev

git merge命令用于合并指定分支到当前分支。

注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

当然,也不是每次合并都能Fast-forward,我们后面会将其他方式的合并。

删除dev分支了:

$ git branch -d dev
$ 强行删除dev分支 $git branch -D dev

用带参数的git log也可以看到分支的合并情况:

$ git log --graph --pretty=oneline --abbrev-commit*   59bc1cb conflict fixed|\| * 75a857c AND simple* | 400b400 & simple|/* fec145a branch test...
git log --graph命令可以看到分支合并图。
手中残留任务没有写完的情况下 要即时修改bug 如何处理
$ git stash 可以存储当前的未完成代码  
1.存储未完成代码 $git stash
2.从当前分支打出来一个bug分支 $git checkout -b xxxx(xxxx 是分支名)
3.修改bug后合并到当前分支 $git checkout master   $git merge --no-ff -m "xxxxxx" xxxx(分支名)
4.删除bug分支 $git branch -d xxxx(分支名)
5.查看刚才未完成的工作存储到哪,切换到未完成分支,回到未完成状态的代码 $git stash list   $git branch unfinish  $git stash list
恢复方式:1.$git stash apply 恢复但不删除stash内容 需要手动执行删除 $git stash drop 2.$git stash pop 恢复的同时删除stash的内容 同时可以存储多个stash $git stash list 查看当前有多少个stash 然后通过选择方式恢复指定stash $git stash apply stash@{0} stash@{0}是类似id的东西