git status:查看修改了哪些文件
git checkout filepath:撤销文件修改,filepath为被修改的文件的路径
git 中如何撤销部分修改?
以修改了两个文件a、b为例,假设需要撤销文件a的修改,则修改后的两个文件:
1、如果没有被git add到索引区
git checkout a 便可撤销对文件a的修改
2、如果被git add到索引区,但没有做git commit提交
1)使用git reset将a从索引区移除(但会保留在工作区)
git reset HEAD a
2)撤销工作区中文件a的修改
git checkout a
3、如果已被提交,则需要先回退当前提交到工作区,然后撤销文件a的修改
1)回退当前提交到工作区
git reset HEAD^
2)撤销工作区中文件a的修改
git checkout a
git pull:更新项目,下拉项目修改内容。
git commit -m "commit message":提交,commit message为提交说明
git commit:进入commit配置文件编写界面,配置提交信息
git clone "你的地址":克隆远程项目到本地
git add .:添加文件
git commit -m "":提交文件
git push origin master:提交到远程项目上。(push之前,先git pull)
-----------------------创建标签-------------------------------------
git checkout dev:切换到需要打标签的分支上
git tag name:打一个新标签。例如,git tag v1.0
默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
方法是找到历史提交的commit id,然后打上就可以了:
git log --pretty=oneline --abbrev-commit
对应的commit id是“ef51d63”,敲入命令git tag v0.9 ef51d63
git tag:查看所有标签
git show tagname:查看标签信息。例如,git show v0.9
可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released" 02172e4
可以通过-s用私钥签名一个标签:git tag -s v0.2 -m "signed version 0.2 released" a8093be
签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错
用命令git show tagname可以看到PGP签名信息
用PGP签名的标签是不可伪造的,因为可以验证PGP签名。验证签名的方法比较复杂
-----------------------操作标签---------------------------------
标签打错了,也可以删除:git tag -d v1.0
标签需要单独push(推送),不能和代码一起push(推送)。
推送某个标签到远程,使用命令git push origin tag name
例如:推送V1.2.2版本号:git push origin tag V1.2.2
一次性推送全部尚未推送到远程的本地标签:git push origin --tags
从远程删除。删除命令也是git push origin :refs/tags/tagname
git diff filepath:查看某个文件最近一次修改diff,例如,app/src/main/java/com/llvision/app/CameraFragment.java
command+q(mac):退出文件编辑窗口
git提交本地分支到远程分支
git 常用命令(含删除文件)
我从master分支创建了一个issue5560分支,做了一些修改后,使用git push origin master提交,但是显示的结果却是'Everything up-to-date',发生问题的原因是git push origin master 在没有track远程分支的本地分支中默认提交的master分支,因为master分支默认指向了origin master 分支,这里要使用git push origin issue5560:master 就可以把issue5560推送到远程的master分支了。
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。$ git push origin test:master // 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支
$ git push origin test:test // 提交本地test分支作为远程的test分支
如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。
$ git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
git操作-删除文件
git删除文件
git rm add2.txt
git commit -m "rm test"
git push web
-----------at server
cd /var/www/foo.git;sudo git update-server-info
------------检查删除效果
cd;rm foo3 -rf;git clone http://[某ip]/foo.git foo3
------------更新已经存在的local code
cd;cd foo2
git remote add web [某user]@[某ip]:/var/www/foo.git/
git pull web master