2020-12-25:git常用命令

git add .

git commit -m '注释内容'

git push

1、git add .

本地目录下,新建一个 newcase.py 并且编写,然后通过 git add 将它提交到暂存区。

#把本地文件newcase.py的改变提交到暂存区
$ git add newcase.py
#如果更改的文件过多,可以直接把本地所有的改变提交到暂存区
$ git add .

#如果你想查看当前版本库是否识别到新文件,可以使用 git status

git status

2、git rm

当你想删除本地目录下某个文件时,可以使用 git rm

# 删除文件
$ git rm newcase.py

#如果你想查看当前版本库是否已删除新文件,可以使用 git status

git status

3、git commit -m

接着把暂存区的改动提交到本地版本库

# 通过-m参数,输入本次提交的改动信息,方便我们了解本次的代码变更
$ git commit -m “我修改了文件xx的xx内容”

4、git remote add

项目要多人协作就必须把本地仓库提交到远程

#如下语法用来添加一个远程仓库
$ git remote add [shortname] [url]
#将本地仓库Test1和远程仓库建立连接
$ git remote add origin https://github.com/yourCompany/Test1.git

如果是新建立的项目,需要用这个方式建立远程仓库。待远程仓库建好后,还需要将本地的改动通过 git push 到远程去

5、git push - u

把本地版本库上传到远程库

# 如果是本地新仓库第一次push到远程,你需要执行如下操作
$ git push -u origin master

通过上述方式,你的代码已经存在远程仓库的 master 分支了,别的开发人员就可以拉取你的代码进行修改了

6、git clone

要 clone 远程仓库到本地

#在命令行中执行如下操作
$ git clone https://github.com/yourCompany/Test1.git

7、git checkout-b

项目被拉取到本地后,开发人员就可以进行分支开发,通常情况下不会在 master 分支进行开发,而是采取新 feature 分支开发的方式

#创建并切换feature分支
$ git checkout -b newFeature

假如分支 newFeature 已经存在,你想要切换到这个分支工作,则使用如下命令:

$ git checkout newFeature

8、 git push-set-upstream

因为我们是本地创建的 feature 分支,远程并没有对应的分支,故需要远程分支关联。

    # 把本地分支newFeature关联到远程分支origin
    $ git push --set-upstream origin newFeature

此时远程分支除去 master 分支外,还有我们新建立的 newFeature 分支。当关联远程分支后,我们在 newFeature 分支上再做任何改动,需要 push 到远程分支,就可以直接使用 “git push” 而无须再次进行关联。

    # newFeature的再次改动提交到远程库,仅需执行git push即可。
    $ git push

9、pull request

pull request(通常被简称为 PR)是 GitHub 的一个通知机制,通过它开发人员可以进行更好的协作。pull request 通常要指定 reviewer(评审者),它告诉项目成员我的 feature 功能开发已经完毕,希望合并到代码主分支(master)。

创建 PR 通常是使用 GitHub 界面完成的。仍然拿项目 lagouTest 为例,我们需要把 feature 分支 newFeature 上的改动 merge 到 master,就需要提交 pull request。

在 GitHub 项目目录选择 “compare & pull request” 来建立一个 pull request。

在创建 pull request 页面,可以看到我们是要把 newFeature 的改动 merge 到 master 里去。正文的输入框中,输入本次提交都修改了哪些内容,然后在右侧的 Reviewers 里添加需要协作的同事,然后点击 “Create pull request” 即可。

提交后你的同事会收到邀请,当他们 Approve 你的改动后,你的代码就进入了 master 仓库(关于如何 review 一个 pull request,请参考 Review Pull Request)。

 10、 git branch -d

当你的分支被 merge 后,你的 feature 分支和远程分支就不需要了,最好把它们删除以保持 git 分支的清爽。

    #删除本地分支
    $ git branch -d [branchname]
    #譬如删除本地分支newFeature
    $ git branch -d newFeature
    #删除远程分支
    $ git push origin --delete [branchname]
    # 删除远程分支newFeature
    $ git push origin --delete newFeature

 

二、Git 常见问题

除了上述 Git 常用的操作外,在日常工作和面试中,我们经常会遇见如下问题。

1. 如何查看提交历史

当你需要查看某个文件的提交历史时,使用如下命令:
    $ git log filename
    #查看 newcases.py的提交历史
    $ git log newcases.py

2. 本地正在开发,远程 master 有了更新,如何应用更新到本地分支?

当远程有更新且需要应用到本地时,可以采用如下操作:

    # 假设本地feature分支为newFeature
    # 首先需要提交本地分支newFeature的改动至代码仓库
    $ git add .
    $ git commit -m "本地分支修改comments"
    # 然后,执行git merge
    $ git merge master
    # 最后,再次提交
    $ git add .
    $ git commit -m "merge master 分支"

3. 提交时文件有冲突怎么办?

当多人同时改动一个文件并且当你提交时,这个文件已经被先行 merge 到 master 时,就会出现冲突。

当出现冲突后, git 会列出来冲突的内容,你可以通过手动选择保留哪个版本的方式来解决冲突,解决冲突后,通过“git add” 和“git commit”再次提交即可


4. 当你正在进行分支开发时,接到一个紧急任务,如何将当前的改动保留和后续恢复?

当你的 feature 分支开发了一半,然后接到了紧急任务需要支持,但是你又不想把功能不完善的代码提交到代码仓库,此时可以使用 git stash 命令。

    # 如果你要切换新分支但是有未保存的更改使用git checkout -b会报错。此时可以通过git stash将所有未提交的修改(工作区和暂存区)保存至堆栈 中,可用于后续恢复.
    $ git stash
    # 等你想恢复你保存的改动时,执行git stash pop。 它将缓存堆栈中的第一个stash删除,并将对应修改应用到当前的工作目录下。
    $ git stash pop

5. 本地提交已提交到暂存区,但是不想要了怎么办?

假设你的某次改动已经提交到暂存区,还没有 push,但是你想丢弃这个改动,可以采用如下办法:
复制代码

    $ git reset --hard HEAD

git reset 有 hard 和 soft 两个模式,感兴趣的同学可以自行了解下其中的区别。

6. 提交后发现把本次修改的内容commit写错了,怎么办?

当你只想 git commit 后发现遗漏或者写错了本次修改的内容, 可以采用如下方式:
复制代码

    $ git commit --amend
    # git会出现一个编辑框,你可以更改你的提交信息。

7. 上线后有问题,代码需要回退怎么办?

如果发现发布上线的功能有问题,需要回退的情况,执行如下操作:
复制代码

    $ git revert HEAD
    $ git push origin master

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值