git 的常用命令

257 阅读2分钟

git下载

http://npm.taobao.org/mirrors/git-for-windows/

git公钥生成

ssh-keygen -t rsa -C "youremail@example.com"

从仓库啦取项目

当我们从线上拉取已有项目时

git init
git remote add origin git@gitee.com:chenchenhan/boke.git
git pull origin master --allow-unrelated-histories
git add .
git commit -m "本次提交说明文字"
git push -u origin master //第一次提交 -u表示指向默认
git clone git@github.com.user/my-project.git .  // 克隆到当前文件夹下

拉取项目已有分支

git checkout -b 本地分支名 origin/远程分支名
// 这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来
// 拉取不成功。我们需要先执行
git fetch
// 然后再执行
git checkout -b 本地分支名 origin/远程分支名
// 拉取某个分支到当前分支
git pull origin feature-v2.0

push项目无分支

git checkout -b feature1.0.0
// 会在远程创建与本地分支同名分支   本地分支:远程分支
git push origin feature1.0.0:feature1.0.0
// 或者
git push --set-upstream origin featurev4.3.21

关联分支

git branch --set-upstream-to=origin/feature0.5

关联库

// 查看关联库
git remote -v

// 添加关联库
git remote add origin ...

// 册除关联库
git remote rm origin

分支管理

// 查看所有分支
git branch
// 创建分支
git branch dev
// 切换分支
git checkout dev
// 创建并合并
git checkout -b dev
// 合并分支
git checkout master
// 合并分支 -- 把dev分支合并到当前分支
git merge dev
// 合并分支,禁止使用fast forward方式, 需留下合并记录
git merge --no-ff -m "merge with no-ff合并记录" dev
// 册除分支
git branch -d dev
// 未合并分支强行册除  
git branch -D feature-vulcan

版本回退

// 查看历史版本找到commit id
git log

// 回退到版本id   
git reset hard 'commitid'

打tag标签

打标签主要是备份版本v

// 在head上
git tag v.01
// 在以往提交的commit id上打标签
git tag v1.0 'cmmit id'

// 删除标签  
 git tag -d v0.1

bug问题

// 拉取分支报不能合并。历史版本时加入参数
git pull --allow-unrelated-histories

冲突

git status
// use "git add <file>..." to mark resolution
// 先拉取
git pull
// 需手动合并
// no tracking information
// git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接:  
git branch --set-upstream-to=origin/dev dev

多人协作

// 指定本地dev分支与远程origin/dev分支的链接
// 在初次提交到远程dev上时
 git branch --set-upstream-to=origin/dev dev

首先,可以试图用git push origin 推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。

这就是多人协作的工作模式,一旦熟悉了,就非常简单。