美文网首页
Git command line

Git command line

作者: 奔跑的喔汼 | 来源:发表于2020-06-12 17:48 被阅读0次
  1. Git 配置

1.1. git config

git config 语法:git config [–环境参数] key value
  有三个环境参数:

–global 全局配置,写到~/.gitconfig中,即用户路径C:\Users\li.liu下的.gitconfig文件。
–local 工作目录配置,即所在仓库的配置,写到当前仓库下的.git/config文件中。
–system 写到$(prefix)/etc/gitconfig文件中,即git安装路径下的etc/gitconfig中。

eg:
git config --global user.name "用户名"
git config --global user.email "邮箱"

1.2 查看所有配置
git config --list

1.3 查看某个环境变量的配置
$ git config user.name

  1. 创建仓库
    新建本地仓库
    git init [project-name]

克隆远端仓库
git clone [url]

3.查看状态与提交

查看状态
git status

查看没有暂存的变化
git diff

查看暂存文件与上一版本的区别
git diff --staged

添加变化文件到stage,准备提交
git add [file]

git add的相反操作
git reset [file]

提交
git commit -m [“描述”]

4.分支
查看本地分支
git branch

查看远程分支
git branch -r

切换分支
git checkout [分支名称]

4.1合并分支
git merge [要合并进来的分支名如b1] ,git merge b1 表示,将分支b1合并到当前分支。

5.git stash 搁置和恢复未完成的修改

临时保存所有本地变化

git stash

恢复临时保存的本地变化

git stash pop

查看

git stash list

丢弃

git stash drop

6.git log 查看提交历史

git log

git log --follow [file]

git diff [first-branch]...[second-branch]

git show [commit]

-p 选项用来显示每次提交的内容差异。

git log -p

--stat 选项显示每次提交的简略统计信息

git log --stat

7.git push

$ git push <远程主机名> <本地分支名>:<远程分支名>
只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。当你和其他人在同一时间
克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问地被拒绝。你必须先将他们的工作拉取下
来并将其合并进你的工作后才能推送。

git push <远程主机名> <本地分支名>:<远程分支名>
  分支推送顺序的写法是<来源地>:<目的地>,

所以,git pull是<远程分支>:<本地分支>,
而git push是<本地分支>:<远程分支>。

git push -u origin newBranch:newBranch // 新建远程分支

8.删除分支

删除远程分支。
git push命令如果省略本地分支名,将删除远程分支。如git push origin :remoteb1将删除远程remoteb1这个分支。
$ git push origin :remote1

或者

$ git branch -r -d origin/remote1

删除本地分支
git branch -d 本地分支名

git fetch 更新本地的远程分支。
git rebase 如果远程分支确实有更新,且本地有未提交到服务器的提交,再执行git rebase, 这样本地的提交就会更新到新的base上,再提交到服务器不会因base不同而报错。
repo sync 实际是执行了两个操作,先git fetch,再基于最新base checkout出代码,也就更新了本地分支。

git fetch + git merge = git pull

9.git checkout -b [要新建的本地分支名] [远程主机名如origin]/[远程分支名如remoteb]

git checkout -b [要新建的本地分支名] [远程主机名如origin]/[远程分支名如remoteb]这个命令是新建一个本地分支,并切换过去。这个分支同远程分支remoteb一样。是origin/remoteb的一个跟踪分支。

10.远程仓库版本回退
git branch old_master //新建old_master分支做备份 git push origin old_master:old_master //push到远程
git reset --hard 某次提交ID //本地仓库回退到某个版本 git push origin :master //删除远程分支
$ git push origin master:master //重新创建远程分支

在删除远程master分支时,可能会有问题,处理方式为:
$ git receive.denyDeleteCurrent warn
慎用删除远程仓库方法😀 这2种方式,都挺危险的,需要谨慎操作……

11.git rebase
很好的一种避免合并(git merge)代码时出现冲突的方法,即合并(git merge)之前,执行git rebase命令。
如:要把b1 合并到b2上:
首先切换到b1,执行 git rebase b2 //把b1发生过的commit衍合过来,
然后切换到b2,执行 git merge b1 //把b1合并到b2。

12.git cherry-pick
git cherry-pick用于把另一个本地分支的commit修改应用到当前分支。
如 git cherry-pick commit-ID1 commit-ID2 commit-ID3
1 命令读的是本地commit。
2 pick过来后,生成新的commit-ID
3 如果拿过来的commit本身是一个merge commit,则可能会用到-m参数,参数值为数字1或2,如
git cherry-pick commit-ID -m 2

13.添加远程仓库
先在github.com上新建一个仓库superalloy(远程库)。
将本地仓库与远程库关联:
$ git remote add origin git@github.com:leonliu06/superalloy.git (SSH)

or

$ git remote add origin https://github.com/leonliu06/MyServlet.git (HTTP)
关联后,使用命令:
git push -u origin master 第一次推送master分支的所有内容。

14.修改最后一次commit的注释
一:最新的一次提交
当你不小心,写错了提交的注视/信息,该如何处理呢。理论上,SCM是不应该修改历史的信息的,提交的注释也是。
不过在Git中,其commit提供了一个–amend参数,可以修改最后一次提交的信息.但是如果你已经push过了,那么其历史最后一次,永远也不能修改了。
我使用git commit –amend已经push过的
$ git commit --amend
然后在出来的编辑界面,直接编辑注释的信息,保存退出。

二:历史提交
git使用amend选项提供了最后一次commit的反悔。但是对于历史提交呢,就必须使用rebase了。
git rebase -i HEAD~3
表示要修改当前版本的倒数第三次状态。
这个命令出来之后,会出来三行东东:
pick:*******
pick:*******
pick:*******
如果你要修改哪个,就把那行的pick改成edit,然后保存退出。
这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:
git commit --amend
来对commit进行修改。

修改完了之后,要回来对不对?
使用git rebase –continue
OK,一切都搞定了。

相关文章

网友评论

      本文标题:Git command line

      本文链接:https://www.haomeiwen.com/subject/vlvajctx.html