git常用命令集合

1. 切换分支   git checkout 分支名

2. 创建并切换到新分支             git checkout -b 分支名

3. 查看本地和远程所有分支             git branch -a

4. 查看本地分支或远程分支             git branch         git branch -r

5. 直接新建本地分支,将远程分支提取出来          git checkout -b local_branch origin/local_branch

6. 本地分支改名          git branch -m 原名 更改的名

7. 合并远程master分支到当前分支        git merge origin/master

8. 将当前分支push到远程master分支  git push origin master

9. 删除远程仓库的xx分支                       git push origin :xx

10.获取远程分支master并merge到当前分支 git pull origin master

    将远程a分支拉取并合并到本地b分支          git pull a b

11. 强制删除本地的xx分支              git branch -D xx

12 设置远程分支和本地分支的追踪关系         git  branch -u  origin/remote_branch_name  local_branch_name

6. 查看当前版本状态(是否修改)   git status

7. 增加x,y,z文件至index                   git add x y z

8. 删除index中的文件x            git rm x

8. 增加当前子目录下所有更改过的文件至index           git add .

9. 放弃修改x文件,还原该文件                     git checkout x

9. git commit -m ‘xxx’

11.显示提交日志                 git log

12.仅显示最后一次提交日志      git log -n 1

13.显示最后一次提交所有更改过的文件          git log -n 1 --stat

14.显示最近一次提交的所有更改细节                    git log -n 1 -p

15.回退到merge前            git reset —merge

16.刷新远程分支。    git remote update

16. 回退

      1.git log查看提交历史

      2.git reset jbjhs(某个commit)/git reset —hard jbjhs (回退到这个commit,之前的修改全部舍弃)/git reset HEAD(回退到上一个版本)/git reset HEAD test.java(将该文件回退到上个版本)/git reset —hard origin/master将本地回退到和远程一样/git revert HEAD按照上次commit的相反再commit一次

      3. Git push origin master —force(需要关闭分支保护,push之后再开启分支保护)

17 本地解冲突步骤(a合到test有冲突):

(1)git checkout test, git pull origin test

  (2) git merge —no-ff a

  (3) 解冲突

  (4) git add .   Git commit -m ‘’

  (5) git push origin test

如果在很早的master上拉取的分支开发,可能会有冲突,先将master merge到开发分支解冲突。

18 拉取远程master更新时,本地master分支有未提交的文件

 git stash

 git pull

 git stash pop

19 想在本地拉取远程的某一个分支进行改动

git checkout -b dev origin/dev

20 把一个仓库b的内容push到另外一个仓库a

 git remote add notebook http://git.corp.kuaishou.com/huangqixiang/jupyter-notebook.git(在a上建立远程notebook,来自于仓库b)

git pull notebook master(在a上就可以把b合到a了)

21git rm -r --cached .     (用来删除ignore不生效的方法)

  git add .

  git commit -m 'update .gitignore

22  git tag -a 0.1.3 -m “Release version 0.1.3″  (打标签发版)

    Git add .

      Git commit

      git push origin —tags

    git tag -d 0.1.3

    git push origin :refs/tags/0.1.3

23. 新建git项目

git init

Git add .

Git commit -m ‘first commit'

git remote add origin https://github.com/hudeqi/test_sssp.git

git push -u origin master

24. 查看当前分支更改了哪些   git diff .

25. 比较两个分支不同  git diff a b   (a-,b+)

26. 查看某个commit内容  git show commitid

   28. Git checkout commitId -b new_branch    以某个commit为止切个新分支

27. 迁移项目到另一个仓库

        git remote set-url origin remote_git_address

        git push

    28 查看某次commit细节:git log、git show commit-id

    29 查看某人代码提交行数

    git log --author='username' --pretty=tformat: --numstat | awk '

        {add += $1; subs += $2; loc += $1 - $2 } END { printf "添加了%s,删除了%s,合计%s ", add, subs, loc }' -

30. git cherry-pick <commit id>  将某个commit的添加到当前分支下

31. Git rebase  push时master有变更,需要先pull,pull完提交会分叉,先git rebase,再push,commit记录就会成为一条直线,你的提交就会在最上面

32. Git使用之Permission Denied问题解决:

    1. ssh-keygen -t rsa -C "$your_email"

    2. cat ~/.ssh/id_rsa.pub

    3. 粘贴到git的ssh管理页面上

33. 两个git仓库合并:

    1. git remote add other git@github.com:kktjs/kkt-next.git(将 kkt-next 作为远程仓库,添加到 kkt 中,设置别名为 other)

    2. git fetch other (从 kkt-next 仓库中拉取数据到本仓库)

    3. git checkout -b kkt-next other/master (将 kkt-next 仓库拉取的 master 分支作为新分支 checkout 到本地,新分支名设定为 kkt-next)

    4. git checkout master  (切换回 kkt 的 master 分支)

    5. git merge kkt-next --allow-unrelated-histories (将 kkt-next 合并入 kkt 的 master 分支)

原文地址:https://www.cnblogs.com/chuanmin/p/14699734.html