这篇文章是一些较为基础的git的命令,想要较为熟练地用git去进行代码管理还是要多练习哦!
上图是git中的文件的状态图,在下面的命令中,大家可以对照着去看一下,更好地理解各个命令执行后文件的状态。
git config --global user.name "bingo"
or git config --global user.email "xxx@xx.com"
git init
创建一个新的空的git仓库,此处注意gitt下创建的是一个隐藏文件 .gitgit add 1.cpp
git add -u:将文件的修改、文件的删除,添加到暂存(stage)区。
git add .:将文件的修改,文件的新建,添加到暂存区。
git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。git status
git status -s
(以简略的方式查看)
git status
命令用于显示工作目录和暂存区的状态。使用此命令能看到哪些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。git status
不显示已经commit
到项目历史中去的信息。看项目历史的信息要使用git log
.git commit
git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里。
git commit -m "message"
message用来说明这次提交的语句。
git commit -a -m "message"
参数 -a 可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区
git commit --amend
追加提交,它可以在不增加一个新的commit-id的情况下将新修改的代码追加到前一次的commit-id中。 使用情形:如果我们不小心提交了一版我们不满意的代码,并且给它推送到服务器了,在代码没被merge之前我们希望再修改一版满意的git log
默认不用任何参数的话,git log 会按提交时间列出提交的历史,最近的更新排在最上面。
具体git log参数的使用,可以看一下这个链接里面的。东西很多,就不往出列了。
https://www.jianshu.com/p/0805b5d5d893
git log --oneline --graph (以一行的形式显示,并且能够以图形的方式看到分支)git diff
通常用来查找你当前工作目录和上次提交与本地索引间的差异。
$ git diff
上面的命令会显示在当前的工作目录里的,没有 staged(添加到索引中,没有用add去stage),且在下次提交时 不会被提交的修改。
如果你要看在下次提交时要提交的内容(staged,添加到索引中),你可以运行:
$ git diff --cached
上面的命令会显示你当前的索引和上次提交间的差异;这些内容在不带"-a"参数运行 "git commit"命令时就会被提交。
$ git diff HEAD
上面这条命令会显示你工作目录与上次提交时之间的所有差别,这条命令所显示的 内容都会在执行"git commit -a"命令时被提交。git reset
将文件从staged 状态返回到 Modified状态
git reset --hard HEAD 通过移动指针指向来进行撤销操作 HEAD^ 回到上一个 HEAD^^ 回到上两个 或者HEAD~2 或者还有--hard 2a17845 (你想回到的commit 的id号码)
https://www.jianshu.com/p/c2ec5f06cf1agit reflog
显示所有的commit的 id号码,预防撤销多了还想回去git checkout
对单个文件进行撤回
git checkout c6762a1 --1.cpp
(针对1.cpp使其回到commit change id 对应的状态)git branch
查看分支
git branch [name]
创建一个分支
这里创建一个 bra分支 git branch bra (并且进行了复制分支)
在查看分支时 git branch
会看到 :bra
*master
这里的星号的意思是 你现在在master的分支上。
git checkout bra
切换分支。
会看到*bra
mastr
删除掉分支 git branch -d bra
强制删除是 D
另一种创建分支的方法 :git checkout -b bra
这里是创建分支并移动到创建好的分支上,也复制了。git merge
一般用于在达到上线要求后,将分支上的文件合并到master中。
git merge --no-ff -m "keep merge into" bra
使用--no--ff的话,会保留在分支中的commit。git merge的具体参数以及使用方法,还请看下面的链接:https://www.jianshu.com/p/418323ed2b03这个作者写的较为详细。git log --graph
命令可以看到分支合并图。
https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344git stash [save message]
暂存,save为可选项,message为本次暂存的注释
git stash list
所有暂存的记录列表
git stash pop stash@{num}恢复暂存,num是可选项,通过git stash list可查看具体值。只能恢复一次
git stash apply stash@{num}
恢复暂存,num是可选项,通过git stash list可查看具体值。可恢复多次
git stash drop stash@{num}
删除某个暂存,num是可选项,通过git stash list可查看具体值
git stash clear
删除所有暂存作者:西瓜媛
编辑:西瓜媛