天天看点

GIT常用命令for QA2

1. 我之前的git命令博客地址

https://blog.csdn.net/weixin_42498050/article/details/81037572

博客的瞎限制导致之前的博客编辑后无法保存成功,不得不新建

2. git配置for macOS

2.1> git基本配置

通过下面这些指令,配置用户名和邮箱

git config --global user.name "your_name"

名字和邮箱需要用双引号包裹,回车之后,如路径没有任何变化说明设置成功;

git config --global user.email "[email protected]"

此处的邮箱账号可以是假的账号,但是格式必须复合邮箱格式,同样回车成功之后路径不会有变化;

git config core.ignorecase false

配置本地仓库文件大小写敏感,建议配置,以免文件更新有误;

git config --list

查看配置

➜  ~ vim ~/.gitconfig

GIT常用命令for QA2

2.2> 生成SSH key

在终端输入命令:ssh-keygen -t rsa -C your-email.com(注意:这里要改成你自己的邮箱)

箭头的地方,需要直接会车三下。就会生成需要的ssh-key

GIT常用命令for QA2

发现在/Users/lishan/.ssh 下生成一对公私钥

GIT常用命令for QA2

3> 把公钥id_rsa.pub 复制粘贴到你的git- Profile Settings- SSH Keys

GIT常用命令for QA2

再提交代码就ok了 

参考博客:https://www.jianshu.com/p/b9528cce4e9f

3. 如果先在本地写了代码,再关联到远程仓库

参考博客 https://www.cnblogs.com/idiv/p/8565773.html

Git 本地项目关联远程仓库

初始化

在本地需要关联到远程仓库的项目根目录下执行

git init 
           

然后关联远程仓库 [project]。你需要在git创建一个仓库。New project 以下命令行填写git地址。我这里写的是gitee的地址

git remote add origin [email protected]:idiv/[project].git
           

提交

git add .
git commit -m '初始化项目'
git push -u origin master
           

一般在github或者gitee上新建项目会带有一个readme文件,也很有可能你本地git init的项目中也存在这样的文件,这样就会冲突,如果没有冲突到此就提交完成了

解决冲突

如果远程仓库不为空就提交失败, 解决方案 rebase = fetch + merge

拉远程仓库文件

git pull --rebase origin master
           

有冲突解决冲突

可以在本地查看一下哪些地方冲突了,手动解决即可。

继续流程走

git rebase --continue
           

接着提交

git push -u origin master
           

ps: 强制merge

git pull origin master --allow-unrelated-histories
           

至此,已经在本地初始化项目后关联到远程仓库了

GIT常用命令for QA2

4. 在别人的项目新建分支之前,提交工单开通developer的权限,否则无法新建远程分支、提交代码

否则git仓库 new branch按钮不会出现

GIT常用命令for QA2

注意:如果提交代码时,一直让输入username  password,则需要在idea配置 VCS -Git -Clone -Login to Github 配置登录github页面的用户名密码。如果用命令行,注意不为➜  ~ vim ~/.gitconfig 下的username!!!

GIT常用命令for QA2
GIT常用命令for QA2

尽可能的用命令行代替页面操作

➜  perftest git:(master)

git checkout -b lishaniOS   新建地分支并且自动切换到新分支

git push origin lishaniOS:lishaniOS   本地:远程分支 local_branch:remote_branch   无需单独在git页面新建远程分支

5. 基于master分支创建B分支

GIT常用命令for QA2

查看git界面,可以看到远程仓库有了新分支

GIT常用命令for QA2

master受保护的分支,A分支代码为某业务线最新的代码,在创建C分支时先切到A分支再创建C分支

GIT常用命令for QA2

把刚刚基于master创建的分支B删除,再基于A分支创建C分支

GIT常用命令for QA2

6. 自己的分支关联到其他项目、分支关联到新的git地址

项目X,基于X的master分支拉新分支A(newcpw),A分支关联到新项目Y远程分支

参考博客 https://www.cnblogs.com/xuliangxing/p/7132656.html?utm_source=itdadao&utm_medium=referral

1> 先在gitlab创建新的项目Y,New project

GIT常用命令for QA2

2> X项目的master分支上执行 git checkout -b newcpw   --创建并切换分支A

3> 此时切换到了最新的分支A,执行 git remote remove origin   --删除本地指定的远程地址

4> 解除A分支与X项目git的关联后,执行 git remote add origin http://gitlab.XX-inc.com/XX.ls/newcpw.git   --本地仓库和远程仓库建立连接

5> git push -u origin master   --将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了

完成,可以在Y项目的git地址查看是否有新的分支和提交记录了

如遇fatal: unable to update url base from redirection: 解决办法:把https改成git即可

GIT常用命令for QA2

重新解除关联再关联换成SSH的git地址后,就对了

GIT常用命令for QA2
GIT常用命令for QA2

如果想把X项目的master分支关联到Y项目,执行git push -u origin master  

如果想把X项目的yksearch分支关联到Y项目,执行git push -u origin yksearch  

GIT常用命令for QA2

关联成功查询Y项目的git仓库

GIT常用命令for QA2

成功

7. git命令简写:

gst   等于    git status

gcam 'RD日志调整后的解析'   等于    git commit -m 'XX'

gco   等于   git checkout XX

查看git别名:git config --list

alias.s=status

alias.a=!git add . && git status

alias.au=!git add -u . && git status

alias.aa=!git add . && git add -u . && git status

alias.c=commit

alias.cm=commit -m

alias.ca=commit --amend

alias.ac=!git add . && git commit

alias.acm=!git add . && git commit -m

alias.l=log --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'

alias.ll=log --stat --abbrev-commit

alias.lg=log --color --graph --pretty=format:'%C(bold white)%h%Creset -%C(bold green)%d%Creset %s %C(bold green)(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

alias.llg=log --color --graph --pretty=format:'%C(bold white)%H %d%Creset%n%s%n%+b%C(bold blue)%an <%ae>%Creset %C(bold green)%cr (%ci)' --abbrev-commit

alias.d=diff

alias.master=checkout master

alias.spull=svn rebase

alias.spush=svn dcommit

alias.alias=!git config --list | grep 'alias\.' | sed 's/alias\.\([^=]*\)=\(.*\)/\1\     => \2/' | sort

查看提交记录 :git log 缩写 glg

查看某人的提交记录:git log --author=lishan

GIT常用命令for QA2
GIT常用命令for QA2

6. B分支基于A分支创建,A分支代码更新,切换到A git pull ,再切换到B git merge A --把A代码合入B分支,在合并代码之前,B分支的代码需要提交。此时的B分支代码无需提交

git log --author=XXX

git cherry-pick 8f64e1a4ac9ab94d079cfdbe8a1db2344fa66763

把A在A分支提交某次代码(提交号commit唯一号)合并到自己的分支

7. 切换到A分支   git merge B  无法退出,按control + Z ,有时merge会自动解决冲突

GIT常用命令for QA2

8. GIT本地项目关联远程仓库

创建新的git地址,新工程首次关联提交到git

参考博客https://www.cnblogs.com/idiv/p/8565773.html

在gitlab创建自己的git

GIT常用命令for QA2

➜  noqc ✗ git init

Reinitialized existing Git repository in /Users/lishan/PycharmProjects/noqc/.git/

➜  noqc git:(master) ✗ git remote add origin [email protected]:xx/clientmoke.git

GIT常用命令for QA2

 4903  git init

 4904  git remote add origin [email protected]:shuxin.ls/clientmoke.git

 4905  git add *

 4906  gst

 4907  gcam 'update'

 4908  git push -u origin master

git branch --set-upstream-to=origin/master master    远程分支 本地分支关联 

 4909  git pull

提交成功后就可以在gitlab看到记录了~~

GIT常用命令for QA2

如遇

error: the requested upstream branch 'origin/master master' does not exist

hint: 

hint: If you are planning on basing your work on an upstream

hint: branch that already exists at the remote, you may need to

hint: run "git fetch" to retrieve it.

hint: 

hint: If you are planning to push out a new local branch that

hint: will track its remote counterpart, you may want to use

hint: "git push -u" to set the upstream config as you push.

GIT常用命令for QA2

待续、、、、、

QA