git 使用总结

来源:互联网 发布:怎么发送淘宝链接 编辑:程序博客网 时间:2024/05/17 08:43

http://www-cs-students.stanford.edu/~blynn/gitmagic/  练习git不错的网站,还能翻译成中文

You should be able to work with different branches, look at existing patches and history and add your own code changes

 

1. 复制respository

git clone ssh://git@tuxmaker/linux   ---将远端服务器tuxmaker上面的代码copy到本地一份(需要在tuxmaker上面使用ssh-keygen产生出id_rsa 和id_rsa.pub ,将.pub文件放在远  端的git服务器上)

 

2. 到某个分支工作

git branch --检查当前在哪个分支上

git checkout devel

git checkout bb/tingcao/ccw_pt  --转换到指定的分支上去工作

 

3.创建commit

使用git add  file1  --添加修改过的文件到本地的库

      git add file2

       git commit -s  ---提交到本地库里面  (file1 ,file2在同一个commit里面)

 

4. 撤销commit   git reset

当有多个commit的时候,想要撤销某个commit,或者撤销多个commit,那么使用 git reset (--hard/ --soft /--mixed)  commit-number

commit  aaa1  ---file1

commit bbb1   ---file2  file3

commit ccc1

 

git reset --hard ccc1   -----退回到ccc1这个时候的版本,就是说后面的代码修改完全没有了

git reset --mixed ccc1 ---- 将ccc1之后的commit 取消,文件add操作也取消,就是这个时候 文件file1,file2,file3已经修改了,但是没有add

git reset --soft ccc1   ----- 仅仅回退了commit操作,文件已经修改了,并且也已经添加了。。只用重新git commit -s 就行了。。

 

HEAD --最近一次提交  HEAD ~0

HEAD ^ 上一次提交  HEAD ~1

HEAD ^^ 上上次提交   HEAD ~2

git reset --soft HEAD^^     相当于git reset --soft ccc1

 

5.合并commit,合并修改  git rebase -i  commit-number

   比如commit  aaa1

         commit  bbb1

         commit ccc1

         commit ddd1

 想将aaa1 与ccc1 合并(当aaa1就是ccc1的某个修改的时候更适用),git rebase -i ddd1

      pick   aaa1                                      pick  aaa1

      pick    bbb1    --->  修改                   f       ccc1

      pick   ccc1                                       pick  ddd1                

      就行了。

  (当出现问题时,修正,然后git rebase --continue

      还可以编辑  git rebase --edit-todo

      退出取消rebase,  git rebase --abort)

 

 

6. 打patch   git format-patch  (每个commit对应一个patch)

   git format-patch --cover-letter -n --subject-prefix="kvm][PATCH v4" -o patches bb/tingcao/ccw_pt -1 (-1,只打一个patch, -2 将2个commit打2个patch)

   ---这样就在linux/patches里面生成了patch,cover-letter里面要写这几个patch修改的内容

 

7. 发信 git send-email

    git send-email --suppress-cc all --to "16034594@qq.com" --to "522600@qq.com" --to "xx patches/*.patch (--dry-run选项,是在本地预演一下)

 

8.

 

++++++++++++++++++++++++++++++++++++++++++++++++++++

查看commit的内容,看看修改了哪些内容

git log 看所有的提交,即commit

git log -n 1 看最后一次提交

git log -n 1 --stat  看最近一次提交更改的所有文件

git log -n 1 -p 看最近一次提交所有更改的细节内容

 

++++++++++++++++++++++++

测试 http://blog.sina.com.cn/s/blog_68af3f090100rp5r.html

 

 

 

 

 

 

 

 

 

0 0