在当前分支上新建本地分支

git checkout -b branch_new

删除本地分支

git branch -d branch_new

将本地分支上传到远程分支并建立连接(建立连接后才能在本地提交今后的变更)

git push origin 本地分支:远程分支
推送本地分支到远程
如果远程分支不存在,会自动创建
git push origin local_branch:remote_branch
git branch --set-upstream-to=orgin/remote_branch

删除远程分支

git push --delete

修改远程分支名称

git branch -m branch_old branch_new 
git push origin :branch_old
git push --set-upstream origin branch_new

在当前分支上合并其它分支

git merge branch_other

本地分支重命名

git branch -m oldName newName

git设置全局参数

$ git config --global user.name 'name' 
$ git config --global user.email 'email'

解决每次要输入账号密码的问题

$ git config --global credential.helper store

待下一次提交代码的时候,输入了正确的用户名和密码,之后就不需要输入用户名密码。

从服务器拉取远程到本地

git fetch
git checkout -b 本地分支 origin/远程分支

设置默认编辑器为VIM

git config --global core.editor vi

回滚代码到某一个指定的提交版本

先用 git log 查看提交日志
然后找到要回滚的提交日志,commit后面是一串id

git reset --hard commit_id

回滚后如果又想滚回到最新的提交
git reflog查看提交的命令记录,然后找到最后的一次提交记录,前面有一串简写的commit id,然后再通过​​​git reset --hard commit_id​​就可以回到最新的版本了

本地仓库上传到远程仓库

例如要将本地仓库传到github,gitee

git remote add origin xxxx

然后提交代码 :​​git push -u origin master​

如果本地还没有仓库,那么 git Init 初始化即可

切换远程仓库地址

三种方法:
1.直接修改远程仓库地址

git remote set-url origin url

2.删除本地远程仓库地址,然后添加新地址

git remote rm origin
git remote add origin url

3.修改配置文件

在本地仓库根目录有个.git的隐藏目录,修改其中的config文件中的url

git 常用操作_git

查看远程仓库地址

git remote -v

放弃本地修改,撤销

有三种情况

1.本地修改了,但是未使用 git add 缓存代码

可以使用 git checkout – filepathname (比如: git checkout – readme.md ,不要忘记中间的 “–” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。

此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

2.已经使用了 git add 缓存了代码

可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。

此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如1所示的状态。继续用1中的操作,就可以放弃本地的修改。

3.已经用 git commit 提交了代码

可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid

你可以使用 git log 命令来查看git的提交历史。git log 的输出如下,之一这里可以看到第一行就是 commitid

合并两个仓库代码

场景:有两个仓库分支代码需要合并,可以是本地仓库也可以是远程仓库,这里以本地仓库为例

假设有 A和B两个文件夹,现在要在B文件中的仓库合并A文件夹中的仓库代码

首先进入到B仓库,在master中将A仓库作为远程仓库

git remote add repo1 <file path>/repo1_test.git

拉取数据到本仓库中

git fetch repo1

从远端repo1仓库的master分支拉取数据作为新分支checkout到本仓库的新分支repo1

git checkout -b repo1 repo1/master

这时候B仓库中就有两个分支,分别是 master和repo1

接下来合并分支

git merge master

这是将master分支合并到repo1分支上,如果要反过来的话就先切换到master上然后合并repo1.

从某次提交上迁出分支

场景:想从某个提交的代码上迁出一个新的分支
首先,git log 找到想迁出的某次提交的id,commit ID

然后 ​​git checkout -b newbranch commit_id​

删除本地关联的远程仓库(不会删除仓库)

查看本地关联的远程仓库
git remote -v
删除仓库关联
git remote rm xxx

添加远程仓库关联

git remote add origin xxx 
添加后第一次push代码
git push -u origin master

合并某个分支的某次提交 cherry-pick

将某个分支的一个(或多个)提交合并到另一个分支,注意不是merge,merge是全部合并、而我们要的是可选择的,就要用到 Cherry pick。

参数说明

git cherry-pick [commit] 命令的常用配置项如下。
(1)-e
打开外部编辑器,编辑提交信息。
(2)-n
只更新工作区和暂存区,不产生新的提交。
(3)-x
在提交信息的末尾追加一行(cherry picked from commit …),方便以后查到这个提交是如何产生的。
(4)-s
在提交信息的末尾追加一行操作者的签名,表示是谁进行了这个操作。
(5)-m parent-number
如果原始提交是一个合并节点,来自于两个分支的合并,那么 Cherry pick 默认将失败,因为它不知道应该采用哪个分支的代码变动。
-m配置项告诉 Git,应该采用哪个分支的变动。它的参数parent-number是一个从1开始的整数,代表原始提交的父分支编号。

示例:
例如:有 test、dev 两个分支,dev有多次提交(按照提交顺序)[A、B、C、D、E],我想合并提交B到test分支
1.查看 dev 提交版本号记录

git log dev

git 常用操作_缓存_02

2.切换到待合并分支 test

git checkout test

3.执行合并

git cherry-pick 6b4182a807ef4e30b7da3ea9bf7211b4de9a7b6f

4.然后推到远程

git push

补充说明:
1.如果想一次合并B、C两个提交,如下: ​​​git cherry-pick B C​​​ 2.我想合并从B到D的所有提交 ​​git cherry-pick B…D​​ 注意: 上面提交B要早于D,不然不会成功,而且不会包含提交B,也就是只有C、D两次提交,如果要包含B提交,则要如下: ​​git cherry-pick B^..D​