下载克隆
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的提交,这一撤销动作会作为一个新的修改存储起来,这样,当你和服务器同步时,就不会产生什么副作用。