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.
待续、、、、、