git使用简记

Git是分布式的代码版本控制工具,当年linus为了管理好linux内核代码搞出来的东西。虽一直听说git合并代码很方便,但却没怎么用过,公司一直还在用svn来管理代码。
最近注册了个github账号,用来看源码,当然自己也要写一点,这里顺便把一些最基础的git命令记下来。
 
1. 创建本地版本库
创建新的代码库:git init  
克隆现有代码库:git clone  
Set up git设置提交的用户名和邮箱
git config --global user.name "snailding"
git config --global user.email ssdut2010@126.com
如果不设置个人信息,提交的信息将不会有更改者信息,这样会加大项目管理的难度。
 
2.修改项目文件
git add                //将文件添加到暂存区
git status             //查看当前工作目录状态
git rm                  //从暂存区删除文件
git commit -m "" //提交文件到本地代码库: 
git diff                //查看当前工作文件与暂存区文件的差异
若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用 git diff --cached 命令
git commit -a -m 'added new benchmarks'  //暂存并同时提交到本地库
 
3. 创建密钥信息并在github上配置
ssh-keygen -t rsa -C "your_email@example.com"      //生成密钥对
Enter passphrase (empty for no passphrase): [Type a passphrase]  //输入密码(这个密码会在你提交项目时使用):
将生成的公钥添加到github的管理后台中
 
4.提交代码到版本库
git remote add origin git@github.com:defnngj/demo.git
//如果你是第一次提交项目,这一句非常重要,这是你本地的当前的项目与远程的哪个仓库建立连接。
//origin可以改为别人的名字,但是在你下一次push(提交)时,也要用你修改之后的名字。
git remote -v                        //查看你当前项目远程连接的是哪个仓库地址
git push -u origin master     // 将本地的项目提交到远程仓库中
git push origin master         //push到远程中的同名项目中
git pull origin master          //远程代码库上的代码更新到本地:
如果需要忽略某些文件,创建一个名为 .gitignore 并写入相应规则
 
5.分支的新建与合并
git checkout -b iss53          //新建并切换到该分支,即当前的 HEAD 指针正指向 iss53
相当于执行了:
git branch iss53
git checkout iss53

git checkout master             //切换分支,切换到主分支
git checkout master               //切回主分支,合并hotfix分支
git merge hotfix
git branch -d hotfix          //删除hotfix分支
git checkout master          //合并分支
git merge iss53

git status                //看看哪些文件在合并时发生冲突,可以用git status查阅:
任何包含未解决冲突的文件都会以未合并(unmerged)的状态列出
 
6.其他常见问题
提交代码是遇到冲突,拒绝提交
git pull remotetest master  //抓取远程仓库中的文件,需要指定分支 
查看冲突文件内容,冲突用<<<<<< ====== >>>>>>隔开冲突代码,上面的是当前修改内容,下面的则是别人修改的内容。
git add <filename> 修改冲突内容,重新提交,推送
 
假如本地已经存在了这个项目,而仓库中又有一新的更新,如何把更的合并到本地的项目中?
git fetch origin               //取得远程更新,这里可以看做是准备要取了
git merge origin/master  //把更新的内容合并到本地分支/master
git 都会尝试去自动合并改动,但可能会产生冲突(conflicts)需要手动合并
git diff <source_branch> <target_branch> 查看不同版本的不同
 
git log      //查看提交历史 -p显示内容不同  -3指定显示的个数
 
替换本地改动
git checkout -- <filename>  //你替换掉本地改动,此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。
git fetch origin
git reset --hard origin/master
假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它
 
git config --global core.autocrlf true   //windows提交文件时自动设置换行转换 
 
 
 
posted @ 2015-05-01 21:06  snailding  阅读(244)  评论(0编辑  收藏  举报