您的位置:首页 > 编程语言

git入门命令及合作技巧

2017-07-01 20:23 253 查看
一本地git管理

二远程仓库github使用

三分支管理

四标签

五自定义git

一、本地git管理

//1.初始化git根目录
git init


//2.添加文件到暂存区
git add file


//3.提交
git commit -m "commit message"


//4.查看仓库状态,是否有修改
git status


//5.查看仓库修改了什么
git diff


//6.想要回退前查看之前啊的提交记录,查看提交历史 --pretty=oneline表示简化信息
git log --pretty=online


//7.回退到前面的版本 HEAD^,HEAD~100表示回退到前100个版本
git reset --hard HEAD^


//8.查看命令历史,用于回到未来的某个版本
git reflog


//9.撤销工作区修改,其中"--"必不可少,与后面的分支管理有区别

git checkout -- <file>

//1.该文件还未add到stage,则撤销修改
//2.该文件已经add到stage,又作了修改,则撤销就回到add时的状态(1->add->2,回到1)


//10.撤销暂存区修改,即add到stage之后又不想add了
git reset HEAD <file>


//11.删除文件到stage,对比git add,还需要git commit才能真正删除
git rm


二、远程仓库github使用

//1.在用户主目录下创建.ssh文件夹,含有id_rsa(私钥)和id_rsa.pub(公钥)
ssh-keygen -t rsa -C "youremail@example.com"


//2.登录Github,打开Account settings,SSH Keys 页面,将id_rsa.pub文件的内容Add SSH Key,填上任意title


//3.关联本地仓库到github的远程仓库(需要知道github远程仓库的地址git@github.com:SSSimo/learngit.git)
git remote add origin git@github.com:SSSimo/learngit.git


//4.把本地master分支的最新修改推送至GitHub(第一次推送的时候加-u,之后推送可以不加,-u参数添加origin为默认主机)
git push -u origin master


//5.从远程仓库clone一个项目到本地
git clone 远程仓库地址


三、分支管理

//1.创建dev分支,然后切换到dev分支
git checkout -b dev


//git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev


//2.用git branch查看当前分支
git branch


//3.切换分支
git checkout branch_name


//4.合并分支,当前为master,合并dev分支(fast-forward)
git merge dev


//5.删除dev分支
git branch -d dev


//6.当多分支有冲突时不能fast-forward,要先解决冲突


//7.使用带参数的git log 查看分支提交情况
git log --graph --pretty=oneline --abbrev-commit


//8.禁用fast-forward,在合并时会新建一个commit记录,这样,从分支历史上就可以看出分支信息
git merge --no-ff -m "merge with no-ff" dev


//9.查看分支提交记录,同7


//10.分支现场保护,保持当前分支的当前工作区,此时可以去别的分支进行一些别的bug修复工作
git stash


//11.回复分支中的保护现场,bug修复后继续回复被保护的现场
1.  git stash list      //查看被保护现场的列表
2.1 git stash apply     //恢复现场,但不删除stash的内容
2.2 git stash pop       //恢复现场,同时删除stash的内容
2.3 git stash apply stash@{0}   //应用指定现场
2.4 git stash drop stash@{0}    //删除指定现场


//12.删除还没有合并的分支
git branch -D branch_name


//13.开发新功能和修复bug最好新建一个分支,开发完成以后合并到父分支,并删除子分支


//14.查看远程仓库名字(默认为origin)
git remote


//15.推送本地分支到远程仓库对应的分支
git push origin master //将本地master推送到origin远程仓库的master分支上
git push origin dev


//16.抓取分支(刚刚clone下来的项目中只有master分支)
git checkout -b dev origin/dev


//17.有时候在github上误操作了,删除远程仓库的一个分支
git push origin :branch_name


//18.设置本地分支与远程分支的关联后才能pull下来合并
git branch --set-upstream-
c0b3
to=origin/dev dev


//19.从远程仓库pull下来试图合并,需要先checkout到需要pull合并的分支
git pulll   //试图合并远程仓库的对应分支


多人协作的工作模式通常是这样:

1.首先,可以试图用git push origin branch-name推送自己的修改;

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

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

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

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

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

四、标签

tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

//1.创建一个标签
git tag v1.0


//2.查看所有标签
git tag


//3.为某个commit打标签,加上commit_id
git tag v0.9 6224937


//4.查看标签信息
git show <tag_name>


//5.创建带有说明的标签
git tag -a v0.1 -m "version 0.1 released" 3628164


//6.推送标签到远程仓库
git push origin v1.0
git push origin --tags //一次性推送所有标签


//7.删除远程仓库的标签
git tag -d v0.9 //先从本地删除
git push origin :refs/tags/v0.9


五、自定义git

//1.设置开发者的名字
git config user.name "yourname"


//2.设置开发者邮箱
git config user.email "youremail"


//3.让git显示颜色
git config --global color.ui true


//4.忽略特殊文件
创建.gitignore文件
参考https://github.com/github/gitignore


//5.强制添加需要被忽略的文件
git add -f <file>


//6.检查是哪个规则忽略了要add的文件
git check-ignore -v <file>


//7.设置命令的别名
git config --global alias.st status
eg:git config --global alias.unstage 'reset HEAD'   //撤销提交到stage之后的文件修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  github git