git使用

下载克隆

git clone http://xxx/yyy.git

git clone -b branchName url

切换

cd yyy

切换分支

git checkout -b develop

git checkout -b develop remote_branch_name

egg. git checkout -b feature/20181206 origin/feature/20181206

设置提交的远程分支

git branch --set-upstream-to origin/develop develop

新建分支,并切到对应新分支

目前master分支,基于master,新建分支test
git checkout -b test
相当于
git branch test
git checkout test

全局设置用户和电邮

git config --global user.name "John Doe"

git config --global user.email johndoe@ example.com

查看配置信息

git config --list

git config --get user.name

查看分支

git branch -a

删除远程分支

在别的分支下操作

git push origin --delete remote_branch_name

删除本地分支

git branch -d local_branch_name

删除远程标签

git push origin --delete tag tag_name

删除本地标签

git tag -d tag_name

推送本地标签到远程

git push origin --tags

查看远程分支和标签

git ls-remote -h -t

切换远程git url

git remote set-url origin http://XXXX.git

查看标签

git tag

git 命令合并分支代码:https://www.cnblogs.com/sdgf/p/5852114.html

1、进入要合并的分支(如开发分支合并到master,则进入master目录)

git pull

2、查看所有分支是否都pull下来了

git branch -a

3、使用merge合并开发分支

git merge 分支名

4、查看合并之后的状态

git status

5、有冲突的话,通过IDE解决冲突;

6、解决冲突之后,将冲突文件提交暂存区

git add 冲突文件

7、提交merge之后的结果

git commit

如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;

8、本地仓库代码提交远程仓库

git push

Git怎样撤销一次分支的合并Merge https://www.cnblogs.com/ZhangRuoXu/p/6706536.html

解决方法:

  • 1.找到最后一次提交到master分支的版本号,即【merge前的版本号】
  • 2.回退到某个版本号
git reset --hard 【merge前的版本号】

3.强制推送

git push -f

git 修改已提交的某一次的邮箱和用户信息

git filter-branch -f --env-filter \
"GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='newemail'; \
GIT_COMMITTER_NAME='committed-name'; GIT_COMMITTER_EMAIL='committed-email';" HEAD

修改当前的project的用户名的命令为:

git config user.name 你的目标用户名;

git修改当前的project提交邮箱的命令为:

git config user.email 你的目标邮箱名;

git本地及远程分支回退

1. git本地版本回退

git reset --hard commit_id(可用 git log –oneline 查看)

2. git远程版本回退

git push origin HEAD --force #远程提交回退

下面的命令也可以实现远程版本回退
```
git reset --hard HEAD~1
git push --force

```
## 3. git reverse和git reset的区别

    • git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
    • 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
    • git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

      4. git reset + commit号

      git reset命令后面是需要加2种参数的:
      ”–hard”和”–soft”。

这条命令默认情况下是”–soft”。执行上述命令时,这该条commit号之 后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。

使用git status命令可以在缓冲区中看到这些修改。而如果加上”–hard”参数,则缓冲区中不会存储这些修改,git会直接丢弃这部分内容。

但需要注意的一 个问题是:由于这样的重置是直接在本地的修改,无法提交到远程服务器,如果直接丢弃的内容已经被推到远程服务器上了,则会造成本地和服务器无法同步的问题。

即git reset –hard只能针对本地操作,不能针对远程服务器进行同样操作。如果从本地删掉的内容没有推到服务器上,则不会有副作用;如果被推到服务器,则下次本地和 服务器进行同步时,这部分删掉的内容仍然会回来。

而上面注意中提到的问题则可以很好的被git revert 命令解决。

5.git revert + commit 号

该命令撤销对某个commit的提交,这一撤销动作会作为一个新的修改存储起来,这样,当你和服务器同步时,就不会产生什么副作用。

posted @ 2019-10-14 10:07  冀子@  阅读(...)  评论(... 编辑 收藏