新手git操作指南

新手git操作指南

前言:之前对git的操作只是停留在一个人的开发练习操作中,而git除了在版本管理方面有起到作用,对于多人协作也起了不少作用,导师也提了一个code review的想法,所以我也去多查看了一些常见的git操作,再此做一个记录,也给之后一些实习小白一点点帮助吧。

1 git项目提交
  • 全局配置:
git config --global user.name  "joanaxu"
git config --global user.email "joanaxu@tencent.com"
  • 从0开始从远程仓库拉取新项目
git clone http://git.code.oa.com/joanaxu/test.git
cd test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master  

说明: 第一次关联使用git push -u origin master命令,加上-u参数,
git会把本地仓库master分支内容推送到远程仓库的master分支,并且会将本地的master分支和远程的master分支关联起来,
以后本地提交时只需要使用git push origin master命令即可。当远程仓库为空时可以关联成功。

  • 将本地现有项目推到远程master上
盗图的
cd existing_folder
git init
git remote add origin http://git.code.oa.com/joanaxu/test.git
git add .
git commit
git push -u origin master
2 git常见操作命令
  • 分支相关


    盗图的
git branch    // 查看本地分支
git branch -a  // 查看所有分支
git checkkout -b test  // 创建test分支并切换到test分支
git checkout test  // 切换到test分支
git branch test  // 创建一个test的本地分支
git merge feature1  // 将feature1分支合并到当前分支
git branch -d feature1   // 将feature1分支删除
  • 忽略一些提交的文件
忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如
target
bin
*.db
  • 推送改动
 git push origin 分支名   // 将本地修改推送到远程服务分支上
 git remote add origin <server>  // 以后可以直接用origin来表示远程
  • 更新本地分支
 git pull // 从远程拉取分支
  • Bug 分支

场景:当我们在一个开放分支上开放一段时间之后,测试那边有一个bug急需修改,因为我们当前的工作还没有完成,不能直接把当前的修改提交上去。其次,我们也不会直接不提交直接切换分支,这时候可以使用git stashgit stash 可以对当前的工作修改内容进行隐藏存进暂存区,等到bug修改完成后再回过来将暂存区内的修改拿出来继续开心地码代码。

git stash //将修改存储到暂存区,工作区会删除这些修改
git checkout <bug_branch>

git stash  show  //查看刚才暂存的修改
git checkout <feture_branch> //切换刚才功能开发的分支
git stash pop //取出修改

git stash list //查看暂存区的所有暂存修改记录

git stash list //查看暂存区的所有暂存修改
git stash apply stash@{X} //取出相应的暂存
git stash drop stash@{X} //将记录列表中取出的对应暂存记录删除
  • 建议使用git rebase,这是为了使提交线上的逻辑不会那么复杂

git pull = git fetch + git merge

git pull --rebase = git fetch + git rebase

git merge 和 git rebase 都是合并当前分支到另外一支分支上。

1、git merge
用git pull命令把"origin"分支上的修改pull下来与本地提交合并(merge)成版本M,但这样会形成图中的菱形,让人很困惑。

盗图的

2、git rebase
创建一个新的提交R,R的文件内容和上面M的一样,但我们将E提交废除,当它不存在(图中用虚线表示)。由于这种删除,小李不应该push其他的repository.rebase的好处是避免了菱形的产生,保持提交曲线为直线,让大家易于理解。

盗图的

推荐阅读更多精彩内容

  • 学习资料pro git[https://git-scm.com/book/zh/v2]git - 简明指南[htt...
    合肥黑阅读 13,865评论 1 20
  • 目录 Git 笔记系列(一)—— Git简介 Git 笔记系列(二)—— Git工作流程 Git 笔记系列(三)—...
    吃蘑菇De大灰狼阅读 707评论 0 1
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 4,400评论 1 17
  • 加油!人生新的开始,向着光明美好的地方前进,前进!
    平仙冰俏阅读 33评论 0 0
  • 周末去刷了一场话剧。别误会,我不是来写剧评的。其实是两个月前就预订好的场次,直到要开场的那个周五,提前两天告知了...
    弥撒猫阅读 759评论 0 50
  • 喜欢画画,音乐,摄影,关注这里很久了,也看到很多人优秀的作品,把自己曾经拍的一张照片发出来没有P图,淳朴的衣着,自...
    刘沛歆阅读 65评论 0 1
  • 这是 清水一点通 日更的第 287篇,希望能帮助到你。 在全民健身的今天,很多运动都火了起来,特别是依靠互联网社群...
    清水一点通阅读 623评论 0 3