git 常用命令
1 取消commit:
git reset --hard <commit_id>
git push origin HEAD --force
1.1 reset 命令详解:
git reset 仅用HEAD指向的目录树重置暂存区,工作区不会受到影响,相当于将之前用git add 命令更新到暂存区的内容撤出暂存区。引用也未改变,因为引用重置到HEAD相当于没有重置。 git reset HEAD 同上。 git reset -- filename 仅将文件filename 的改动撤出暂存区,暂存区中其他文件不改变。相当于命令git add filename 的反射操作。 git reset --soft HEAD^ 工作区和暂存区不改变,但是引用向前回退一次。当对最新的提交说明或者提交的更改不满意时,撤销最新的提交以便重新提交。 之前提到过修补提交命令git commit --amend,用于对最新的提交进行重新提交以修补错误的提交说明或者错误的提交文件。修补提交命令实际上相当于执行了下面两条命令。(注:文件.git/COMMIT_EDITMSG保存了上次的提交日志) git reset --soft HEAD^ git commit -e -F .git/COMMIT_EDITMSG git reset HEAD^ 工作不改变,但是暂存区会回退到上一次提交之前,引用也会回退一次。 git reset --mixed HEAD^ 同上。 git reset --hard HEAD^ 彻底撤销最近的提交。引用回退到前一次,而且工作区和暂存区都会回退到上一次提交的状态。自上一次以来的提交全部丢失。
2 创建分支
如果以master分支为基础建立test_branch分支为例:
切换为master分支: git checkout master
建立test_branch分支: git branch test_branch
切换到test_branch分支: git checkout test_branch
将test_branch分支提交到远程仓库: git push origin test_branch
3 分支切换
如果已经建立了test_branch远程分支,首次使用时可执行以下命令可以切换到本地wct_dongle分支工作:
git checkout -b test_branch origin/test_branch
以后就可以用git checkout master 和 git checkout test_branch来回切换本地分支工作了
4 TAG相关:
git tag tag名称 commit值 -m "xxxxxx"
for example:
git tag tag_test_20130906 872afc11be0bb7bfb8056ca2456685f466c0cd89 -m "for 20130906 test"
给当前commit加tag: git tag NMP_XXX
将tag更新到服务器:
更新特定的tag: git push origin NMP_XXX
更新所有本地tag: git push origin --tags
删除tag:
1,删除本地tag: git tag -d NMP_XXX 2,删除远程服务器tag: 方式一:git push origin :NMP_XXX 方式二:git push origin :refs/tags/NMP_XXX
比较tag之间的差异:
git diff --stat tag_test1 tag_test2
只查看某个特定作者的文件更新记录:
git log --stat --author=username
git show tag名称 时就可以看到注释信息,起助记作用
5 Add all new repo into git server
1. Create git repo. folder in 192.168.9.200 $ cd sdk-dir $ mkdir -p test.git 2. Init repo. $ cd test.git $ git --bare init 3. Clone repo to local 4. Add files into local repo. 5. Git push (first time push cmd should use parameter) $ git push origin master