https://blog.csdn.net/weixin_42498050/article/details/81037572
博客的改版 影响不小。。。之前的博客无法编辑了。。。
个人git地址
https://gitee.com/QAls/dashboard/projects
用户名
2037632974@qq.com
密码 Mac电脑开机密码
12. 本地远程分支代码同步
gco master
git branch -d I2104 删除本地分支
gco master
git remote update --prune
git pull
git branch
git branch -a
git branch I2104 remotes/origin/I2104 同步远程 本地分支
gco I2104
11. idea软件中含有中文时,git命令行的别名简称不生效
解决办法:修改App的名称(IntelliJ IDEA 2021 po解版为IntelliJ IDEA 2021),重启idea
ps -ef|grep -i idea|awk '{print $2}'|xargs kill -9
compinit:191: bad pattern: /Applications/IntelliJ IDEA 2021 \M-g\\M-4解\M-g((.app/Contents/plugins/terminal/.zshrc
qa@lishandeMacBook-Pro-4:~/Desktop/2021/code/cloud% gst
zsh: command not found: gst
qa@lishandeMacBook-Pro-4:~/Desktop/2021/code/cloud% git status
解决后为
10. git 查看本地仓库,对应的远程仓库地址
git remote -v
origin git@gitee.com:QAls/xx.git (fetch)
origin git@gitee.com:QAls/xx.git (push)
9. git新项目
Command line instructions
You can also upload existing files from your computer using the instructions below.
Git global setup
git config --global user.name "xx"
git config --global user.email "xx@xx.com"
Create a new repository
git clone git@gitlab.xx.com:xx/javaauto.git
cd javaauto
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Push an existing folder
cd existing_folder
git init
git remote add origin git@gitlab.xx.com:xx/javaauto.git
git add .
git commit -m "Initial commit"
git push -u origin master
Push an existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin git@gitlab.xx.com:xx/javaauto.git
git push -u origin --all
git push -u origin --tags
8. 什么是 rebase?
git rebase 你其实可以把它理解成是“重新设置基线”,将你的当前分支重新设置开始点。这个时候才能知道你当前分支于你需要比较的分支之间的差异。
原理很简单:rebase需要基于一个分支来设置你当前的分支的基线,这基线就是当前分支的开始时间轴向后移动到最新的跟踪分支的最后面,这样你的当前分支就是最新的跟踪分支。这里的操作是基于文件事务处理的,所以你不用怕中间失败会影响文件的一致性。在中间的过程中你可以随时取消rebase 事务。
7. git push origin HEAD:refs/for/master 的意思
git push <remote 名字> <本地分支的名字> : <远程库的名字>
git push 肯定是推送
origin : 是远程的库的名字
HEAD: 是一个特别的指针,它是一个指向你正在工作的本地分支的指针,可以把它当做本地分支的别名,git这样就可以知道你工作在哪个分支
refs/for :意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的
refs/heads 不需要
http://wenda.baidu.com/ask/question/56798
6. rebase和merge的区别
rebase的提交线是一根直线不会产生黄色的merge线,merge就会多一个Merge XXX的commit,一般为了保证commit的线性都建议使用rebase
有冲突的话会在本地rebase后提交,这个没有冲突,直接界面就可以操作,也不用重新CR
本地执行 git rebase master,跟merge有一定的区别
5. 新入职员工配置git
git config --global user.name 'xx'
git config --global user.email 'xx@xx.com'
ssh-keygen -t rsa -C 'xx@xx.com'
会在/home/work/.ssh 下生成一对公私钥 私钥id_rsa 公钥 id_rsa.pub
把公钥文本内容复制粘贴到Git-个人中心-SSH公钥
记得编辑/.ssh/config文件
bash-4.1$ vim /xx/xx/.ssh/config
内容如下
User username
IdentityFile ~/.ssh/username.id_rsa
第一行为用户名 第二行为服务器.ssh目录下的私钥
以上配置好后再服务器拉取git代码 成功
4. 配置git多人在Linux机器上添加icode代码权限
加用户名
ssh-keygen -t rsa -f ~/.ssh/id_rsa.username
chmod 644 ~/.ssh/config
【注】~/.ssh/config文件的权限必须是644
vim ~/.ssh/config
添加如下内容:
Host xx
User username
# 私钥
IdentityFile ~/.ssh/id_rsa.username
最后在git配置公钥也就是id_rsa.pub的内容
4. Git对比,右侧的最新的提测代码,左侧是上个版本的代码
3. git本地库关联远程库,在本地仓库目录运行命令
step1:Command line instructions
Git global setup
git config --global user.name "XX"
git config --global user.email "XX@alibaba-inc.com"
step2:Create a new repository
git clone git@gitlab.alibaba-inc.com:XX/lsTest.git
cd lsTest
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
step3:Existing folder or Git repository (如果你是现在本地写好了代码再去git新建的仓库,则需要直接按照step3执行)
cd existing_folder
git init
git remote add origin git@gitlab.alibaba-inc.com:XX/lsTest.git
git add .
git commit
以上内容只需要第一次配置,新项目git关联只需要如下命令行
git init
git remote add origin 远程git地址(ssh地址)
git branch --set-upstream-to=origin/master master
git push -u origin master
如遇如下报错,
则使用 git push -u origin master
$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push
$ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了
如遇
fatal: refusing to merge unrelated histories
解决办法:
➜ Auto git:(master) ✗ git pull origin master --allow-unrelated-histories
如果有冲突,可能是pom文件导致的。解决下冲突提交即可
如遇 fatal: refusing to merge unrelated histories
则 git pull origin master --allow-unrelated-histories
如有冲突解决冲突 看下代码状态,提交
2. 根据代码查找git地址
git remote -v 查看远程地址
地址为SSH的地址
git@gitlab.xx-yyy.com:zz/aa.git
1. Git比较分支差异命令
查看本地分支
git branch
查看远端分支,无论是否checkout到本地
git branch -r
假如想比较dev和master
命令1:比较文件内容的改动
git diff dev master
命令1:比较文件
git diff dev master --stat