Git 基本用法大全

来源:互联网 发布:淘宝大码女装秋装 编辑:程序博客网 时间:2024/06/11 01:52

git用了很久了,作为一个版本管理器,我只能说:太强大了!

在git上,大部分的操作都是有“后悔药”可以吃的,下面把一些简单的使用贴出来:

////////////////////////////////////////////////////////////////////
//                                                                //
//*****************************git**************//
//                                                                //
////////////////////////////////////////////////////////////////////
0、
//创建远程仓库并关联本地仓库
在服务器创建工程response
在本地工程目录下
git init
git add .
git commit -am “someTags”
git remote add origin <网址>
git push -u origin master
//如果报错提示需要先pull
git pull 
//如果报错There is no tracking information for the current branch
git branch --set-upstream-to=origin/master master
git pull
git status
//如果有没有提交的,或者冲突,解决冲突
git add .
git commit -am “sometags”
git push
//如果没有
git push


1、
//标签
git tag //标签列表
git tag <tagname> <版本ID> //添加一个标签,如果不加版本id就是给当前HEAD版本加一个tag
git tag -d <tagname> //删除一个标签
git push origin <tagname> //一个标签推到远程仓库
git push origin —-tags //所有标签推到远程仓库
git push origin :refs/tags/<tagname> //删除一个远程标签《注意,要先删除本地对应标签,再调用这句》




2、
//git pull push命令
git pull <远程主机名> <远程分支名>:<本地分支名>
git push <远程主机名> <本地分支名>:<远程分支名>
//强制覆盖本地文件
git fetch --all  
git reset --hard origin/master 
git pull


3、
//把某个文件的改动当作没有改动
git update-index --assume-unchanged <文件名>
//取消上面的<把某个文件的改动当作没有改动>
git update-index --no-assume-unchanged <文件名>


4、
//创建新分支,并推到服务器
git branch <新分支名>
git push origin <新分支名>
//删除远程分支
git push origin --delete <要删除的远程分支名>
git push origin :<要删除的远程分支名> //推一个空的本地分支到对应的远程分支,就是等于删除这个远程分子




5、
//合并代码(如果把branchA合并到branchB)
git checkout <branchA>
git merge <branchB> 
/*加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并.
命令如此:git merge --no-ff -m “<合并标示>” <branchB>*/
git status //查看合并状态,这里会列出冲突文件
git add <冲突文件名> //修改冲突文件并add
git rm <冲突文件名> //忽视冲突文件,比如一些无用的系统的记录文件,可以不更新
git commit -am “<提交标示>”
git push




6、
//回退到之前的版本(重新设置HEAD)
git reset --hard HEAD^ //HEAD^往前退一次,HEAD^^往前退两次,—-hard是强制改变
//也可以用这个
git reset —hard <版本ID> //版本ID可以通过git log查看
//退回之前的版本后,之后版本的log等信息就不能通过git log查看了
//这种情况下如果还想修改回去,可以通过git reflog命令查看所有之前的命令,找到对应命令的版本ID,reset就可以了。




7、
//撤销修改
git checkout -- <文件名> //这句代码撤销的是当前修改,没有add,没有commit的。
git reset HEAD <文件名> //这句代码撤销的是add以后的。
//如果commit过了,可以用git reset —hard HEAD^退回之前的版本;
//如果push了,那就不算修改了。。。




8、
//stash命令-保存工作现场
//工作中可能你的代码还不想提交,但是有了临时工作需要切换分支,那么可以用stash命令存储当前的工作现场,之后取出
git stash
//恢复工作现场
git stash apply //恢复工作现场
git stash drop //删除stash list
//也可以pop,取出的同时删除
git stash pop




9、
//ignore文件配置
/**/中的方法是全局配置的方法:
/*
(1)自己创建一个.gitignore文件,里面写入需要ignore的文件名;
(2)编辑 ~/.gitconfig文件,添加
[core]
excludesfile = <gitignore文件路径>
*/
《》中的方法是单个项目配置的方法

git 提交前,创建(或者复制).gitignore文件到项目目录下
在该文件中配置ignore信息即可

//对于已经提交过的文件来说,配置ignore文件是没有用的,所以用下面的方法处理
git rm --cached <filename> //从版本库中删除本应该ignore但是已经添加到版本库的文件




10、
//git分支管理策略
//首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
//那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
//你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。




11、
//同一个客户端用多个git账号的ssh处理
ssh-keygen -t rsa -C “<邮箱地址>” -f ~/.ssh/<rsa文件名> //生成一个rsa并保存在~/.ssh/文件夹下,密码无
ssh-add ~/.ssh/<rsa文件名> //执行ssh-agent让ssh识别新的私钥
//该命令如果报错:Could not open a connection to your authentication agent.无法连接到ssh agent,可执行ssh-agent bash命令后再执行ssh-add命令
vi ~/.ssh/config //编辑.ssh下的config文件
//加入如下内容
#Default Git
  Host <hostname1> #随便写,后面要用到
  HostName <address like:10.0.29.10或者github.com>
  User <用户名>
  IdentityFile <对应的rsa文件路径like:~/.ssh/github_rsa>
#Second Git
  Host <hostname2>
  HostName <address>
  User <用户名>
  IdentityFile <对应的rsa文件路径>
. . .
git clone git@<hostname1>:XXX.git //这样就会根据hostname查找后面的rsa文件了,也就对应上了




12、
git仓库操作  
ssh root@192.168.50.243 //进入git根目录 ssh root@<远程地址>
cp ~/.ssh/id_rsa.pub /home/git/id_rsa.pub //把本地的ssh公钥拷贝到服务器,获取访问权限
<<<<<<<<
此时,你相当于进入了一个文件夹目录下,对于文件的操作
ls //打印当前目录下的子目录
mkdir <目录名称> //创建目录
rm -rf <目录名称> //删除目录
cd <目录路径> //进入目录文件夹
。。。太多不详述了
>>>>>>>>
cd <仓库目录路径的父目录>
git init --bare <仓库路径> //让这个路径成为一个仓库 bare是共享的意思
chown -R git:git <仓库路径> //修改仓库权限为git
ll <仓库路径> //查看仓库权限

0 0
原创粉丝点击