汇总Git语句。主要是自学用,也欢迎网友们查看和使用,持续更新。
1.问:git pull后代码没有更新?
答:本地存了修改文件。
git status ./ //查看代码有无更新
git checkout "filename"
git pull
2.如何合并merge
dev代码更新了,传到master上,代码如下
git checkout dev
git pull
git checkout master
git merge dev
git commit -m 'fix'
git push -u origin master
3.回退到某个commit
git log 查看提交commit的sha码
git reset --hard HEAD^ 回退到上个版本
git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id 退到/进到 指定commit的sha码
git push -f 回退后强制提交
4.git pull 或切换分支时代码冲突,但又不想commit
如果改动很重要——存了
git add 冲突文件
git stash
git stash pop //合并暂存的代码
如改动不重要——扔了
git clean -n //这个是清除文件预览
git clean -f //强制清除文件
git checkout -f dev //强制切换分支
5.复制线上分支到本地
git fetch origin dev(dev为远程仓库的分支名)
git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
git pull origin dev(远程分支名称)
git diff dev #diff一下,看看是不是拉下来
6新建本地分支,并对应建立远程分支和推送到远程分支
git branch newbranch;
git checkout newbranch;这两个命令合起来.新建一个分支,并切换到该分支上去
git push origin newbranch:newbranch //创建了一个远程分支名字叫 newbranch
git push --set-upstream origin newbranch
这时就可以在这个分支下使用 git pull 推送支远程的新分支上了
7强制拉取
git fetch --all
git reset --hard origin/master
git pull
8 git diff
https://blog.csdn.net/wq6ylg08/article/details/88798254
(待补充)
(4)git diff <分支名1> <分支名2> :比较两个分支上最后 commit 的内容的差别
(4.1) git diff branch1 branch2 --stat 显示出所有有差异的文件(不详细,没有对比内容)
(4.2) git diff branch1 branch2 显示出所有有差异的文件的详细差异(更详细)
(4.3) git diff branch1 branch2 具体文件路径 显示指定文件的详细差异(对比内容)
git diff commit-id-1 commit-id-2 > d:/diff.txt
9 git ssh 秘钥
https://www.jianshu.com/p/0f26664e9f6a
Mac:
1.终端输入:cd ~/ .ssh
2.终端输入:sudo ssh-keygen -t rsa -C "victordu6694@gmail.com"
3.回车后提示输入密码, 此处密码可以不填, 直接回车,提示再次输入密码, 直接回车,生成成功
4.前往 /Users/victor/.ssh/id_rsa.pub 找到SSH key
5.登录github。打开setting->SSH keys,点击右上角 New SSH key,把生成好的公钥id_rsa.pub放进 key输入框中,再为当前的key起一个title来区分每个key
10 git remote 同步两个项目
#项目1和项目2是两个同事对同一个主项目的复制,现在想在项目1中把项目2的修改commit复制下来。
git remote add upstream 项目1地址
git remote -v#查看当前分支
git fetch upstream
若有冲突,解决之
git merge upstream/分支名
git push
11git blame
git blame D:\code\test.py -L 100,101 查看 D:\code\test.p文件100,101的提交者和提交分支
12 merger时只保留一条记录
# 切换到目标分支上进行合并操作
$ git checkout target_branch
# 运行合并操作,并指定 --squash 参数来保留最新的 commit
$ git merge source_branch --squash
# 编辑合并后的提交信息
$ git commit -m "Merge branch 'source_branch' into 'target_branch'"
# 如果需要,可以再次修改提交信息或者添加其他更改
# 完成合并操作
$ git push origin target_branch