赞
踩
根目录执行:repo sync
筛选更新:repo sync -c --no-tags -d -j8
一般 repo sync 都会加上 -j4、-j8,代表最多可以多少个线程同时执行。主要根据个人电脑配置自行选择(建议 8G 内存使用 -j4,16G 内存使用 -j8)。
指定目录下执行:git pull
1)忽略本地的改动,强制重新下载代码
repo sync -d
2)下载过程中出现错误,继续下载
repo sync -f --force-sync
-f
使遇到网络错误时继续下载,--force-sync
表示出现冲突时继续下载。
本地分支:git branch
远程分支:git branch -r
所有分支:git branch -a
查看本地分支及关联的远程分支:git branch -vv
直接切换:git checkout <name>
创建新分支并切换:git checkout -b <name>
覆盖本地代码并切换:git checkout -f <name>
git checkout -b 本地分支 origin/远程分支
repo forall -c git checkout <name>
git branch --set-upstream-to=<新分支路径>
git branch -d <本地分支名>
git branch -D <本地分支名>
如果本地分支没有与远程分支完全合并,且放弃合并时直接使用 -D 进行删除。
git push origin --delete <分支名>
查看修改文件:git status
查看修改内容:git diff
全部提交:git add .
提交指定文件:git add <文件路径>
1)添加描述信息
单行信息:git commit -m "描述信息"
多行信息:git commit
这里多行信息处理还需要解释一下,git commit 进入到信息编辑窗口,这里还要对 Linux 和 Windows 分别介绍:
Linux
直接在上面填写信息,Ctrl+X 进行数据保存,退出即可。
Windows
输入小写字母 i 进入编辑模式,填写信息。
按 esc 键退出编辑模式,输入 :wq 保存退出。也按 esc 退出编辑模式后,连续按输入两个大写字母 Z 退出。
2)提交到指定分支:git push <XXX> HEAD:refs/for/<分支名称>
当我们需要将同一套修改提交到多个不同分支上时,首先想到的是切换不同分支依此提交,当然这种方式也可以,但 Gerrit 为我们提供了一个更简便的方法。
git cherry-pick <commit-id>
首先提交分支会得到一个 commit-id,提交其他分支时直接使用上面命令即可。也可以在 Gerrit 网站上操作。
1)点击右上角三个点按钮。
2)选择第一个 Cherry pick。
3)在 Cherry Pick to branch 下填写分支名称。
4)点击 CHERRY PICK 即可。
git commit --amend
ps:注意不要修改 id 内容
将指定 commit id 撤回之后所有内容全部放进工作区中。可以省略 --mixed,直接使用 git reset。
回退到上一个版本:git reset HEAD^
回退指定文件到上一个版本:git reset HEAD^ xxx.java
回退到指定版本:git reset 版本ID
将指定 commit id 撤回之后所有内容全部放进暂存区。
回退上上上一个版本:git reset --soft HEAD ~3
将指定 commit id 撤回并清空工作目录及暂存区所有修改。撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。
回退上上一个版本 :git reset --hard HEAD~2
回退到指定版本:git reset –hard 版本ID
与远程代码同步:git reset --hard origin/master
谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。
如果本地没有修改,或者放弃本地修改,可以直接使用远端对其。
git reset --hard origin/xxx_xxx
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD^^^ 上上上一个版本
以此类推...
可以使用 ~数字表示
HEAD~0 表示当前版本
HEAD~1 上一个版本
HEAD~2 上上一个版本
HEAD~3 上上上一个版本
git reset HEAD 命令用于取消已缓存的内容。例如,我们需要撤销 commit1:
git revert commit1
执行上述命令后,git 会创建一个名为 "Revert commit1" 的新提交,该提交会删除 commit1 的所有修改。需要注意的是,git revert 命令不会删除历史提交,因此更加安全和可靠。
git revert 命令会创建一个新的提交,该提交会反转我们指定的提交内容。
有时我们会误修改了文件或者不想提交某些文件,而又不想删除它。这时,我们可以使用git取消修改命令来撤销这些修改。
放弃单个文件修改:git checkout -- <文件名称>
放弃所有文件修改:git checkout .
git checkout 命令可以用来切换分支或者恢复文件。当我们使用 git checkout -- <文件名>命令来恢复文件时,它会将该文件回退到最近的提交状态。也就是说,该文件的所有修改都将被取消。 注意不要忘记中间的"--",不写就成了检出分支了。
1)点击右上角 EDIT 按钮,进入编辑模式。
2)点击进入要修改的代码,并进行修改。
3)点击右上角的 SAVE 保存代码。
4)保存成功,点击右上角的 CLOSE 按钮退出代码编辑界面。
5)修改完成,点击右上角的PUBLISH DEIT按钮发布代码即可。
使用 ABANDON 功能放弃本次提交,同时还需要在本地分支使用命令 git reset HEAD^ 回退版本。再重新提交。
通常修改一段代码后,需要知道该代码都用在了哪些分支上,可以使用如下步骤查找:
1)点击操作栏 BROWSE 后选择 Repositories。
2)再输入框中输入修改文件对应的路径,点击对应的搜索内容。
3)选择这边栏的 Branches 选项。
这样就可以直接查看对应的分支列表。同时,在该页面也可以复制对应的 ssh 链接,直接粘贴到命令窗口进行对应的的代码下载。
在提交代码模块下找到 .get 文件夹
修改 config 文件中的 url 地址即可
查看暂存区中文件信息:git ls-files
–cached(-c):显示暂存区中的文件,git ls-files命令默认的参数
–deleted(-d):显示删除的文件
–modified(-m):显示修改过的文件
–other(-o):显示没有被git跟踪的文件
–stage(-s) :显示mode以及文件对应的Blob对象,进而我们可以获取暂存区中对应文件里面的内容。
命令:vim ~/.ssh/id_rsa.pub
输入o 回车
退出查看:按esc,输入 :q
ssh-keygen -t rsa -C "个人邮箱"
ssh-agent bash
ssh-add ~/.ssh/id_rsa
进入 Gerrit 设置界面,选择 SSH Keys,添加上面的 SSH Keys 即可。
在主目录下找到 .ssh 文件夹,这里就是 ssh 相关信息。
找到 /.ssh/id_rsa.pub 文件,双击打开即可。
找到 /.ssh/config 文件,并使用下面命令打开文件(双击打开文件可以查看但无法编辑)。
sudo gedit config
配置 gerrit 信息
Host 192.168.1.1
HostName 192.168.1.1
User xiaoxu
IdentityFile ~/.ssh/id_rsa
进入 Gerrit 设置界面,选择 SSH Keys,添加上面的 SSH Keys 即可。
生成最近1次commit的patch:git format-patch HEAD^ 或 git format-patch -1 HEAD
生成最近2次commit的patch:git format-patch HEAD^^ 或 git format-patch -2 HEAD
生成单个commit的patch:git format-patch -1 <r1>(<r1>为commit id)
检查patch文件:git apply --stat newpatch.patch
检查能否应用成功:git apply --check newpatch.patch
打补丁:git am --signoff < newpatch.patch
打补丁时可以使用 -s 或 --signoff 选项,可以commit信息中加入 Signed-off-by 信息
git am --abort
git am patch/*.patch
Git 本地会保存文件所有版本,对于大文件很容易导致仓库体积迅速膨胀,Git LFS(Large File Storage)是一个 Git 的扩展,用于实现 Git 对大文件的支持。简单的说,就是如果你想传超过100M的二进制文件到 GitHub,你就要用 Git LFS。
使用了 LFS 上传代码后,下载代码是也会有所区别,指定目录下更新代码:
git lfs pull
全部更新,repo sync后执行:
repo forall -c "git lfs pull"
Git 仓库启用了 LFS,更新代码时莫名其妙的显示一些出现修改,然而使用上面的一些丢弃命令、覆盖更新等都不起作用,都会出现上面的错误。
直接一次性执行下面命令:
git rm --cached -r .;git reset --hard;git rm .gitattributes;git reset .;git checkout .
使用场景:在 branch_1 上修改了部分代码,这时 branch_2 项目来了一个急需修改的 Bug,并且要修改的位置与 branch_1 还相同。由于 branch_1 还未修改完成无法提交,而且由于有修改代码也无法切换分支。这就需要使用到暂存功能,先将 branch_1 的修改暂存,在修改完 branch_2 的 Bug 后,回到 branch_1 取出暂存继续修改即可。
查看保存:git stash list
保存:git stash save "自定义命名"
恢复保存:git stash apply 0(0为列表id)
删除保存数据:git stash drop stash@{1}
上次提交:git show
提交历史:git log
git help
安装:sudo apt install gitk
使用:gitk
git remote -v
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。