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