git

git 操作常见场景

2019-07-30  本文已影响0人  webmrxu
本地新建一个项目,没有提交到git服务器,本地开发如何记录开发历史

git强大的功能之一就是不依赖于服务器也能在本地记录开发历史。
在项目文件夹下,执行以下命令开启代码管理,记录开发历史。

$ git init 
$ git add .
$ git commit -m 'init'

执行成功后,修改项目中文件,使用git status 就能看到修改记录了

新建项目提交到远程

在git服务器中新建一个项目,链接远程仓库并提交代码到远程仓库

$ git remote add origin git@github.com:yourname/仓库名.git
$ git push -u origin master  
下载clone项目,类似svn checkout

复制远程仓库中链接,然后

$ git clone git@github.com:yourname/仓库名.git
开发完成后将代码提交到远程
$ git add .
$ git commit -m '提交描述'
$ git push
新建分支并切换到该分支开发,开发完成提交代码
$ git checkout -b devBranch
$ git add .
$ git commit -m '提交描述'
$ git push
本地有修改不想提交了,想撤销单个文件中的修改
$ git checkout -- filePathName
本地有修改不想提交了,想撤销项目中所有修改
$ git checkout -- .

需要注意的是:新增的文件不会被撤销,需要手动删除

已经使用add 将代码提交到已暂存状态,想撤回add
$ git reset HEAD^
已经使用commit 将代码提交, 想要撤回commit 前状态,保留git add状态
$ git reset --soft HEAD^
已经使用commit 提交代码,发现commit 描述不清晰,想修改commit -m '描述'
$ git commit --amend

注意:如果不熟悉vi操作,建议使用$ git reset --soft HEAD^ 撤回修改,重新提交

代码提交不了怎么办

代码提交不了,熟练的话可以查看错误日志,处理完再提交。
如果日志中有提示(use "git push" to publish your local commits), 使用以下命令行步骤提交

$ git pull
$ git commit -m '描述'
本地有修改,当我想先切换到其他分支去开发,但切换不了怎么解决

使用 stash 储藏已经修改代码,在切换到其他分支

$ git stash
$ git checkout 分支名称

注意:使用git stash 后,所有修改代码就会不见了,不要慌,还能找回来,以下操作取出储藏代码

$ git stash pop
本地有冲突,已经解决了冲突了,怎么状态还是显示代码冲突状态,我要提交代码怎么办

使用add 将代码提交暂存状态就好了,然后在重新提交

$ git add filleName
$ git commit -m '描述'
$ git push

注意:git add 前,必须先解决冲突,不然会将冲突代码也提交上去

使用git开发,经常会发生代码冲突,有什么好的方式减少冲突次数

增加提交代码和拉取代码的频率
公共代码修改前先和team沟通,我要修改这个文件了,大家不要动
功能开发前,尽量一个功能分配给一个人负责
如果是很大的功能,尽量分成小功能,小文件进行并行开发
代码开发遵循开闭原则:已经开发好的代码不要有大范围修改,应该考虑到扩展性,对内修改关闭,对外修改开放
提交代码前提交代码后和该块代码相关人员进行简单的通知:我要提交代码了、我已经提交代码了

第一次提交,提示我需要输入用户名和邮箱如何解决

1 在你的用户目录下 ~/.gitconfig 文件中可以配置你的用户名和密码,如果没有这个文件可以新建一个文件
编辑并复制以下内容到该文件中,注意格式

[user]
  email = xxx@gmail.com
  name = myname
  user = myname

2 使用命令行配置

$ git config --global user.name "myname"
$ git config --global user.email "xxx@gmail.com"
每次提交代码都需要输入密码,好烦啊,有什么好的解决方式

解决方案1:使用SSH and GPG keys,公钥和私钥
解决方案2:在 ~/.gitconfig 文件中保存好用户名和密码
具体操作步骤可以百度

我要重命名一个文件,git 给我的提示是删除了一个文件,然后新增了一个文件,好笨啊

如果觉得不影响,还看得过去,这样操作没有问题
如果觉得不够优雅,参考如下操作,和linux一样一样的
$ git mv fileName newFileName

为什么百度找不到官方文档

这,给你官方文档:https://git-scm.com/book/zh/v1/

上一篇 下一篇

猜你喜欢

热点阅读