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

2.2> 生成SSH key

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

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

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

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

再提交代码就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

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

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

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

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

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

➜  perftest git:(master)

git checkout -b lishaniOS   新建地分支并且自动切换到新分支
git push origin lishaniOS:lishaniOS   本地:远程分支 local_branch:remote_branch   无需单独在git页面新建远程分支

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

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

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

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

6. 自己的分支关联到其他项目

项目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

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地址查看是否有新的分支和提交记录了

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


 

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会自动解决冲突

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

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

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

在gitlab创建自己的git

➜  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
 

 

 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看到记录了~~

 

如遇

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.
 

待续、、、、、

发布了45 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42498050/article/details/100165699