git常用命令

git remote -v 显示所有远程仓库
git remote add name xxx(http网址) 添加当前本地仓库的远程仓库,远程仓库名name自己起;
git remote rm name 删除本地仓库的远程仓库name;

git branch:列出本地所有分支
git branch [-a/-r] 列出所有分支,-a表示本地和远程所有分支,-r表示远程所有分支,不加参数表示本地
git format-patch //将指定的提交转换为补丁文件

/* git remote -v
git branch -a
git format-patch 94d694920 */

git branch -a
git fetch origin xxx:xxx

git checkout 用于切换分支(带一个commit号),或者恢复工作树的文件。如果有冲突,下checkout。
git cherry-pick 将指定的提交(commit)应用于其他分支。
git cherry-pick --abort 放弃cherry-pick执行。发生代码冲突后,放弃合并,回到 cherry-pick 操作前的样子。


拉代码
git fetch “xxx” refs/changes/zzz && git checkout FETCH_HEAD 下环境、代码,东西比较多,会下原版本
git fetch “xxx” refs/changes/zzz && git cherry-pick FETCH_HEAD 仅下与源代码改变的部分代码

注:
如果报错error: Cherry-picking is not possible because you have unmerged files. hint: Fix them up in the work
原来有一个可放入的地方,文件直接插进来,但现在多了可放入的地方,文件不知道往哪里插了。
git log --oneline -10 看现在的版本并为更新成要下载的;
git status 查看未合并的文件,打开代码,点击source control,在对应文件点后面的+号,代表把它add存入暂存区。


git status 显示本地当前分支相较于远程仓库所有有改动的文件,会列出改动文件的清单,会展示文件完整的相对路径路径。
Changes not staged for commit: 需要git add 的文件

直接写好的代码,以文件形式存在硬盘上的,其实就是保存在workspace工作区;
git add之后会存入stage/index暂存区
git commit之后会存入repository本地仓库;
git push 之后会存入remote远程仓库
如果想删除git add的文件:
git restore --staged [file] 将提交到暂存区的文件恢复到工作区
git restore --staged . 将提交到暂存区的文件全部恢复到工作区


上传

先cd到 对应文件夹/

push 操作:(暂存区,本地库,远程库)
0、git status 列出所有改动的文件xxx xxx。//Changes not staged for commit:
(git log --oneline -10)
1、git add 把改动的xxx文件,添加到暂存区。
说明:git add后可以同时添加多个文件,彼此用空格分隔
2、git commit (git commit --amend 在已提交的commit里修改) 将文件提交到本地仓库
添写需求名

进行 commit 后,会自己生成一个 Change-Id.
ctrl o 保存 回车 ctrl x
可以在gerrit直接改commit,点Edit,编辑后点save,close,publish Edit。

(git log --oneline -10)
3、git push 远程仓库名 HEAD:分支名
git push origin HEAD:refs/for/xxx 将文件提交到远程的仓库 (xxx是分支Branch,根据git log每个版本前的数字来查所属的Branch)


注:如果git add报错
On branch xxx
You are currently rebasing branch ‘xxx’ on ‘1234567’.
(all conflicts fixed: run “git rebase --continue”)

Untracked files:
(use “git add …” to include in what will be committed)
aaa/bbb/

nothing added to commit but untracked files present (use “git add” to track)
说明git add 的文件没有添加任何要提交的内容。


git status

git diff
git remote -v
git branch
git checkout -b 远程仓库名
git remote add 远程仓库名 网址
git fetch
git fetch 远程仓库名
git status
git add api/@internal/component/ets/common.d.ts
cat ~/.gitconfig
git commit -s -m “拖拽预览图支持配置透明度”
git log
git push drop4p drop4p
git branch


//版本回退再提交
git remote -v
git fetch text https:// (push)
git fetch text
git branch
git log
git reset --soft HEAD^
git log
git branch
git checkout text
git log
git reset --hard HEAD^
git commit -s -m " xxx "
git push text text -f


git reset --hard xxx(后可跟某版本数字) 回到某版本,将本地工作区的内容强制回退到commitId为xxx的版本。
reset --hard 会在重置 HEAD 和branch的同时,stage区和工作目录里的内容会被完全重置为和HEAD的新位置相同的内容。换句话说,就是你的没有commit的修改会被全部擦掉。

git reset --soft 版本号

作用:用于版本的回退,只进行对commit操作的回退,不影响工作区的文件。
例如:在提交代码的时候,commit之后,然后我又在工作区添加了东西,这时候突然发现,上一次的commit有错误的文件,需要重新修改,但是我添加的东西友不想丢失,而且我想修改上一次的提交,这时候可进行git reset --soft 版本号

git reflog

git log --oneline -10 看提交过的版本,需在对应主要文件夹里


git fetch 四种基本用法

  1. git fetch

这将更新git remote 中所有的远程仓库(repository) 所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中

  1. git fetch remote_repository

这将更新名称为remote_repository 的远程repository上的所有branch的最新commit-id,将其记录。

  1. git fetch remote_repository remote_branch_name

这将更新名称为remote_repository 的远程repository上的分支: remote_branch_name

  1. git fetch origin master:tmp
    //在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支

FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向目前已经从远程仓库取下来的分支的末端版本。

git diff tmp
//来比较本地代码与刚刚从远程下载下来的代码的区别
git merge tmp
//合并temp分支到本地的master分支
git branch -d temp
//如果不想保留temp分支 可以用这步删除

(1)如果直接使用git fetch,则步骤如下:

创建并更新本 地远程分支。即创建并更新origin/xxx 分支,拉取代码到origin/xxx分支上。
在FETCH_HEAD中设定当前分支-origin/当前分支对应,如直接到时候git merge就可以将origin/abc合并到abc分支上。
(2)git fetch origin
只是手动指定了要fetch的remote。在不指定分支时通常默认为master
(3)git fetch origin dev
指定远程remote和FETCH_HEAD,并且只拉取该分支的提交。

git pull : 首先,基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD记录与远程仓库的版本号,然后git fetch 获得当前指向的远程分支的后续版本的数据,然后再利用git merge将其与本地的当前分支合并。所以可以认为git pull是git fetch和git merge两个步骤的结合。
git pull的用法如下:

git pull <远程主机名> <远程分支名>:<本地分支名>
//取回远程主机某个分支的更新,再与本地的指定分支合并。

因此,git fetch是从远程获取最新版本到本地,但不会自动merge。


生成代码改动文档

自己对代码的改动后,需要给其他人看时,可以将更新的内容生成diff文件或者打补丁 (patch) 。
(1.1)生成diff文件命令
git diff >test.diff
git diff
q退出

(1.2)把diff文件放到代码里
cp ~/Downloads/test.diff ./
git apply test.diff

(1.3)删除时如果有括号:括号前加
rm test(2).diff

(2.1)生成patch文件命令,会生成xxx.patch
git format-patch HEAD^ //打包最近的1次commit的一个patch

(2.2)把patch文件放到代码当前分支里,打patch
cp ~/Downloads/xxx.patch ./
git am xxx.patch


ls 仅罗列出当前文件名或目录名 就像Windows里的文件列表。
ll 罗列出当前文件或目录的详情信息,含有时间、读写权限、大小等信息,ll是“ls -l"的别名
ll -a

git show 展示当前版本的所有改动
git show xxx 查看xxx版本commit对应的文件修改情况
cd - 返回上一次目录

  • 24
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值