git简介:
git的状态
workspace -> staged -> local repo -> remote repo
git只有在入库(local repo)才算是保存了。
git 某些操作是需要文件在某个状态下才能执行。
如:commit 得文件在staged状态下才能执行。
git常见命令
//这里直接用例子给出
git add * //保存当前路径下所有文件。
git add myfile.test //保存文件myfile.test
git add myfolder //保存文件夹(包括属下的所有文件)
git rm */myfile.test/myfolder //(在本地和stage中)删除所有/文件/文件夹
git commit -m "这里是message信息,用来标注版本修改内容,这是好习惯" //将stage修改提交到本地仓库
上文,add rm 操作的状态是staged的,commit操作之后是committed。
例子:
cd ~/myworkspace //选择git目录
git init //使用当前目录做为git的repository
...
vim test.mytest //例子:添加文件。
git add test.mytest //上传文件
git commit -m "$(date) add test.mytest" //$(date)调用shell命令,输出为当前日期,提交
...
//这里origin是远程仓库repository别名,可以任取,常见是origin
//最后的参数是远程仓库的地址,需要自己在github上创建
git remote add origin http://github.com/..../helloworld.git
//master 代表本地仓库
git push origin master
//上述操作一般是失败的,详细请认真看错误信息。
//需要先pull!在push。
git pull origin master
关于.gitignore
在repo目录下创建(如上文的myworkspace),其作用是配置忽略文件,在add folder(当前文件夹用. )时会自动忽略指定的文件。(一般不愿意把bin文件夹,.obj .dat文件等上传到服务器)。下面是我的.gitignore文件内容:
*.o
*.so
*#
*~
*.out
*.in
*.unfinish
*.data
*/*.o
*/*.so
*/*#
*/*~
*/*.out
*/*.in
*/*.unfinish
*/*.data
git_usage
删除修复:
rm的修复:
git checkout file.delete
git rm 的修复:
git rm 之后,其状态是staged的,你这时候的checkout似乎是不起作用。于是先转为unstaged: git reset HEAD file.delete 再checkout: git checkout file.delete