Git是一个免费的、开放源码的分布式版本控制系统,它能以快速和效率处理从各种各样的项目。(一句话概括,就是分布式版本控制工具)
git clone xxx.git
git add 文件名
例:
// 提交所有文件,这里.匹配所有文件名
git add .
git commit -a -m "注释"
git push
注意事项
撤销一个文件修改
git checkout -- 文件名
撤销全部文件修改
git checkout -- .
注意点:只能是已经存在的文件回到未被修改的状态,新建的文件不会被删除(因为你没有提交,git不知道你新建了什么文件)。当是删除的文件会恢复。
第一步:撤销add
撤销暂存区的文件
git reset HEAD 文件名
撤销这次所有暂存区的文件
git reset HEAD .
第二步:撤销修改
git checkout -- 文件名
git checkout -- .
git reset --hard commit_id
可以查看提交历史
git log
查看命令历史,以便确定要回到未来的哪个版本
git reflog
git branch 分支名
git checkout 分支名
假设目标分支为A,被合并的分支为B
切换到A分支,然后执行合并操作
git merge B
git merge 分支名
git branch -d 分支名
当工作开发到一半,又要临时去修bug,此时提交是不合理的,因为你还没有开发完成.所以你可以将当前工作现场暂时隐藏起来
保留当前工作现场(用git status查看工作区,就是干净的)
git stash
然后你bug改完了,你需要继续开发,那么恢复工作现场(本质上是进行了合并)
查看工作现场的编号
git stash list
恢复工作现场(合并分支)
git stash apply 工作现场编号
删除工作现场
git stash drop 工作现场编号
一种是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时把stash内容也删了
来源:segmentfault
官网下载Git时,速度几乎是超不过20KB,解决方法有很多,这里介绍几个简单粗暴的方法。这里使用windows系统作为演示,其他系统对号入座即可。
在开发中,通常会保持两个分支master分支和develop分支,但是如果因为develop上面迭代太多而没有及时维护master,最后想丢弃master而直接将测试确认过的develop强推到master,该怎么操作呢?因此,做如下总结分享,希望对遇到同样问题的人用帮助。
好久没有写代码提交 GitHub 了,真是惭愧!回到正题,今天提交了一个代码,冷不丁发现,在我的 Commit 记录里面,有一条被打上了 Verified 标记。原来 GitHub 的 Commit 支持签名验证了,我可以对每一个我的 Commit 进行签名(Commit Signature)
个人比较喜欢 git add -p. 这增加了“补丁模式”的变化,这是一个内置的命令行程序。它遍历了每个更改,并要求确认是否要执行它们。这个命令迫使咱们放慢速度并检查更改文件。作为开发人员,咱们有时常常急于提交
在未进行git push前的所有操作,都是在“本地仓库”中执行的。我们暂且将“本地仓库”的代码还原操作叫做“撤销”,进行git push,即已推送到“远程仓库”中。我们将已被提交到“远程仓库”的代码还原操作叫做“回滚”!注意:对远程仓库做回滚操作是有风险的,需提前做好备份和通知其他团队成员!
在使用git过程中,希望git忽略某些特殊文件或文件夹,避免提交例如.DS_Store等等。先来查看一下git状态:如果只是这一个项目中有部分不需要提交的内容,那么直接在项目最外层创建一个.gitignore
在git使用中,尤其是多人维护相同项目时,“冲突”是一个经常要解决的问题,但是对这个问题似乎一直似懂非懂。现在感觉真的想明白了,这里把它从发生到处理整个机制做个描述。
1.新建一个本地分支并切换到新建的那个分支:2.从一个分支切换到另一个分支:3.将代码恢复到最近的一次commit 时候的状态:4.将代码从最近的一次commit的状态恢复到最新的进度:
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
交互式生成 commit 记录,需要用户调用自定义的 npm scripts,例如npm run commit。但还是可以直接调用原生 git 命令 git commit 来提交记录。而检查是在正式提交前进行的,因此不符合要求的记录不会生效,需要重新 commit。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!