常用的Git命令

来源:互联网 发布:程序员年薪百万 编辑:程序博客网 时间:2024/06/04 19:45

1.分支相关的命令

    git branch test       ##新建一个本地的test分支

    git checkout test    ##切换到test分支

    git branch -a          ##显示本地的所有分支

    git branch -d test   ##删除test分支

2.更新代码

   2.1 git pull origin develop/master  ##获取库上develop/master分支上的最新代码,再进行merge操作

         该命令相当于:

         git fetch origin develop    ##从远端develop分支获取最新代码

         git merge origin/develop  ##将本地修改和远端代码进行merge操作

        该操作的缺点:常常由于不恰当的merge,导致没有change id,从而使得下次的提交失败。这时候的解决方法如下:

         git reset --soft 没有change id的那次提交的哈希值      ##使cmd id回退到该版本

         git commit --amend      ##再提交一次,使其产生change id

         再进行如下的提交操作

         git add .     ##提交本文件夹下的所有修改过的文件

         git commit -m "注释"

   2.2 通过fetch和rebase实现

         git fetch origin develop

         git log -p develop..origin/develop    ##查看两者差异

         git rebase origin/develop

         git add xx_path/xx_file  ##有冲突时,先解决再add冲突文件

         git rebase --continue

         (注:在做rebase时,最好不要同时提交新的修改;此时就不需要使用git commit命令了,从而避免将库上的历史搞乱)

         git push origin HEAD:refs/for/develop

3.查看文件的修改

         git reflog    ##查看本地的操作记录

         git log origin/develop..HEAD           ##查看本地的大致修改

         git log --stat origin/develop..HEAD  ##查看本地的详细修改

         git status

         (git status -s 简单模式查看状态,第一列本地库和缓存区的差异,第二列缓存区和工作目录的差异),

         git diff file_name      ##查看file_name的具体修改

         git log -n 4      ##查看更新到本地的最新4次修改日志

         git log --stat    ##查看每次修改都更改了哪些文件

         git log --pretty=oneline path/file  ##查看一个文件的所有修改

         git show 哈希值 文件名     ##查看某个文件的某次修改

 

         git log origin/develop..HEAD

         git log --name-status  ##查看日志及每次修改的文件

         git log ..origin/develop --oneline     ##查看库上比本地的新修改

         git log origin/develop.. --oneline     ##查看本地比库上的新修改

         git log -graph

4. 提交代码

         git config --list  ##查看本人的配置情况(若已配置则忽略下面两步)

               git config user.name yyy

               git config user.email yyy@163.com

         git config --list  ##查看配置是否生效

      

         git add .           ##将本地的修改都上库

         git commit -m "注释"

         git push origin develop:refs/for/develop  ##将修改的代码推送到远端(第一次上库时使用)

         git push origin HEAD:refs/for/develop    ##将修改的代码推送到远端(非第一次上库时使用)

         最后到gerrit的网页上确认提交是否生效

5.编译库上的最新的干净版本

        git fetch

        git checkout -b test origin/develop   ##新建并切换到test分支,更新远端develop的代码至此分支

        cp ../RawPrjAll/build/dll/id_rsa.ppk build/dll/

        cp ../RawPrjAll/build/dll/username.gittxt build/dll/

        然后进入build目录再运行编译脚本

6.提取gerrit服务器上感兴趣的(或出问题的)某个版本(如:某次提交后导致出问题的版本)

        git fetch ssh://yyy@ip:29418/** && git checkout -b NewTest FETCH_HEAD

        git log  ##查看提交日志,假设出问题的版本的哈希值为111, 想要回退的版本的哈希值为222

        git reset --hard 222

        (git reset --hard HEAD  ##比如merge冲突时,回退到本地之前的代码先)

        git cherry-pick 111 ##将111版本中提交的修改更新到本地的222版本上

7.将多个提交合成一个

        假设使用git log查看到了111, 222,333,444四个修改,现在想将前面3个修改合并

         git reset 444

         git add .

         git commit -m "将前三个修改合并"

         git log      ##假设新提交为555

         git diff 111 555  ##比较合并后的和之前的,确认无漏

         git push origin HEAD:refs/for/develop

8.其余命令

         git remote -v

         ####更加release的版本号1111,反推是从哪个git commit编译出来的

         git log --reverse --oneline origin/develop | head -n 1111 | tail -n1

 

0 0
原创粉丝点击