git 命令(git常用命令)

下面是自己学习使用git的常用的命令,还有些使用过程中碰到问题的解决办法,现整理如下。一、git clone 从远程主机克隆一个版本库$ git clone <版本库的网址> $ git clone <版本库的...

下面是自己学习使用git的常用的命令,还有些使用过程中碰到问题的解决办法,现整理如下。一、git clone 从远程主机克隆一个版本库$ git clone <版本库的网址>

$ git clone <版本库的网址> <本地目录名> (线上目录名和本地不一样)

二、git remote 列出所有远程主机名 (便于管理,git要求每个远程主机都带一个主机名)

$ git remote -v 查看远程主机网址

$ git clone -o jQuery https://github.com/jquery/jquery.git (克隆版本库时所有主机自动被命名为origin。若用-o可以改变命名)

$ git remote show <主机名> (查看主机详细信息)

$ git remote add <主机名> <网址> (添加远程主机)

$ git remote rm <主机名> (删除远程主机)

$ git remote rename <原主机名> <新主机名> (修改远程主机名)

三、git fetch

git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响。

默认情况下,git fetch取回所有分支(branch)的更新。

$ git fetch <远程主机名> <分支名> (取回特定分支的更新)

$ git fetch origin master (比如取回origin主机的master分支)

$ git checkout -b newBrach origin/master (git fetch取回远程分支后可以基于此创建一个本地分支)

四、git pull

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并

$ git pull <远程主机名> <远程分支名>:<本地分支名>

取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。

$ git pull origin next:master

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。$ git pull origin next

上面命令表示,取回origin/next分支,再与当前分支合并,实质上,这等同于先做git fetch,再做git merge

在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。

Git也允许手动建立追踪关系。

git branch –set-upstream master origin/next

上面命令指定master分支追踪origin/next分支。

如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。

五、git push

将本地分支的更新,推送到远程主机

$ git push <远程主机名> <本地分支名>:<远程分支名>

注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。

$ git push -f <远程主机名> <本地分支名>:<远程分支名> (强制提交,非自己的分支强烈不建议使用)

六、从远程pull一个本地不存在的分支的方法?

1、git checkout -b local_branch origin/remote_branch

2、git fetch将远程分支信息获取到本地,在执行1的方法。

七、git的选择性合并

具体操作步骤:

假如在当前的A分支上要合并B分支的某一个文件

先切回到A分支

然后执行 git checkout B xx.php

xx.php直接会覆盖A分支上的xx.php文件

(注意会直接将文件覆盖,并不会合并文件,比如在A的xx.php有修改,在B的xx.php有修改,执行上述操作会直接把B的xx.php覆盖A,若想解决用下面的步骤)

先在A分支的基础上建一个 A-temp分支,拿这个A-temp分支和B分支合并,之后切回到A分支,然后把A-temp分支的文件覆盖A分支相对应的文件即可。

八、其它命令

提交:git commit -a

对最近一次commit的进行修改:git commit -a –amend

commit之后,如果想撤销最近一次提交(即退回到上一次版本)并本地保留代码:git reset

HEAD^

合并分支:(merge from) $ git checkout master

$ git merge mybranch (merge from mybranch)

删除分支: $ git branch -d mybranch

强制删除分支: $ git branch -D mybranch

列出所有分支: $ git branch

查看各个分支最后一次提交: $ git branch -v

查看哪些分支合并入当前分支: $ git branch –merged

查看哪些分支未合并入当前分支: $ git branch –no-merged

更新远程库到本地: $ git fetch origin

推送分支: $ git push origin mybranch

取远程分支合并到本地: $ git merge origin/mybranch

取远程分支并分化一个新分支: $ git checkout -b mybranch origin/mybranch

删除远程分支:$ git push origin :mybranch

九、分支合并后删除文件问题

问题:A分支有10个文件,B分支有8个文件,这8个文件在A分支和B分支都是一样的,现在切换到A分支执行合并命令,结果A分支的两个文件被删除啦,但是还想在A分支保留那两个文件,该如何处理。

解决:merge的概念是 “把其他分支的变更合并到本分支”。在其他分支删除也是一种merge需要合并的变更先将A创建一个临时分支temp_A,将A和B合并,在将temp_A把A删除的两个文件还原$ git checkout (含有想恢复的文件的commit) — (想恢复的文件1的路径) (想恢复的文件2的路径)

  • 发表于 2022-10-30 13:04:05
  • 阅读 ( 106 )
  • 分类:科技

0 条评论

请先 登录 后评论
浏览:72
浏览:72

594 篇文章

你可能感兴趣的文章

相关问题