新手git操作指南

新手git操作指南

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

1 git项目提交
  • 全局配置:
git config --global user.name  "joanaxu"
git config --global user.email "[email protected]"
  • 从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   // 以后可以直接用origin来表示远程
  • 更新本地分支
 git pull // 从远程拉取分支
  • Bug 分支

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

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

git stash  show  //查看刚才暂存的修改
git checkout  //切换刚才功能开发的分支
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的好处是避免了菱形的产生,保持提交曲线为直线,让大家易于理解。

盗图的

你可能感兴趣的:(新手git操作指南)