git 是 用于版本版本控制,同类型的软件有svn等,用于团队协作开发。
git官网安装,现在各主流平台都有。本次操作在linux下,安装完成后,进行配置:
$ git config --global user.name "Your Name" $ git config --global user.email "[email protected]"
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
$ git init Reinitialized existing Git repository in D:/gittest/.git/
编辑好文件,添加到暂存区
git add testfile.txt
git commit -m "this is comment"
若文件只是add,则下面的操作撤回了修改
git checkout -- testfile.txt
命令git checkout -- testfile.txt
意思就是,把testfile.txt
文件在工作区的修改全部撤销,这里有两种情况:
- 一种是
testfile.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; - 一种是
testfile.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git checkout -- file
命令中的--
很重要,没有--
,就变成了“切换到另一个分支”的命令。
当已经add到暂存区后,使用git reset.
git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本。
正常删除
git rm testfile.txt
git commit -m "delete testfile.txt"
若是本地删错了,但是版本库中还有,则要恢复
git checkout -- testfile.tx
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
注册github账号,本地生成秘钥。
$ ssh-keygen -t rsa -C "[email protected]"
在本地 .ssh目录,有id_rsa和id_rsa.pub文件。在github添加公钥
远程创建好仓库
将本地仓库与远程仓库关联。
$ git remote add origin https://github.com/wodingdong/someskill.git
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令
正常提交:
$ git push origin master
免密码提交
$ git config credential.helper store
在.git的config后面就生成了
[credential]
helper = store
保存,第一次需要输入用户名密码,输入一次密码后第二次就会记住密码了不会再提示输入用户名及密码
$ git config --global user.name "Your Name" $ git config --global user.email "[email protected]"
$ git init
git add testfile.txt
git commit -m "this is comment"
git checkout -- testfile.tx
$ ssh-keygen -t rsa -C "[email protected]"
$ git remote add origin https://github.com/wodingdong/someskill.git
$ git push origin master
使用命令:
git reset --soft HEAD^
这样就成功撤销了commit,如果想要连着add也撤销的话,--soft改为--hard(删除工作空间的改动代码)
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD
1 如果进行两次的commit,想要都撤回,可以使用HEAD2
--soft 不删除工作空间的改动代码 ,撤销commit,不撤销git add file
--hard 删除工作空间的改动代码,撤销commit且撤销add
若注释写错了,修改一下注释:
git commit --amend 这时候会进入vim编辑器,修改完成你要的注释后保存即可。
git log --oneline --graph --decorate --all