git实用操作21条
2014-11-21 14:26
155 查看
1.建空目录 mkdir e:\gg
2.把该目录变成仓库 git init //发现当前目录下多了一个.git
3.新建文件readme.txt
4.添加文件到仓库 git add readme.txt //添加到暂存区
5.文件提交到仓库 git commit -m "wrote a readme file" //后面是日志,提交暂存区的内容
6.查看修改的内容 git diff readme.txt
7.查看历史记录 gig log (--pretty=oneline)//括号里面的表示只显示一行
8.回退到历史版本
8.1 git reset --hard HEAD^ [head表示当前,head^回到上一个,head~`100 退100个版本]
8.2 git reset --hard 3628164 【3628164 版本号,没有必要写全,写五个就行】//如果屏幕没有关掉
8.3 git reflog 【记录每一次命令,可以回退到任意版本】
[与svn区别] 三个回退到两个版本,再查看是2个,svn是四个
9.撤消修改
9.1 没有提交到暂存区 git checkout -- readme.txt
让这个文件回到最近一次git commit或git add时的状态
9.2 提交到暂存区,但没有commit
git reset HEAD readme.txt
10.删除文件
10.1 rm test.txt
11.添加远程库
11.1 关联远程库 git remote add origin git@server-name:path/repo-name.git
11.2 第一次推送master分支的所有内容 git push -u origin master
11.3 以后推送最新修改 git push origin master
12.从远程库中克隆
12.1 git clone git@github.com:michaelliao/gitskills.git
【Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。】
13 创建与合并分支
13.1 创建 dev分支,并切换到dev分支 git checkout -d dev
13.2查看当前分支 git branch //当前分支前面会标有*号
13.3 提交代码到分支,
git add readme.txt
Git commit -m "test"
13.4 切换回master git checkout master
13.5 把分支的成果merge到master
Git merge dev //合并指定分支到当前分支
13.6 删除dev分支 git branch -d dev
14.合并分支在删除分支后,不丢失信息
14.1 git merge --no-ff -m "merge with no-ff" dev
//--no-ff参数,表示禁用Fast forward
15.bug分支
15.1 把工作现场储藏起来,修完bug以后,再恢复
Git stash
15.2 eg在master分支上修复bug,切换到master分支,并创建bug分支
Git checkout master
Git checkout -b issue-101
15.3 修复完成后切换到master分支,合并,删除bug分支
Git checkout master
Git merge --no-ff -m "merge bug fix 101 " issuse-101
Git branch -d issue-101
15.4 回到dev分支干活
Git checkout dev
查看工作现场
Git stash list
恢复工作现场
1.git stash pop[恢复并删除stash]
2.git stash apply 恢复
git stash drop 删除
多人协作
推送自己的修改 git push origin branch-name
推送失败,表明远程分支比本地新,用git pull合并
提示no tracking information,表明本地分支与远程分支没有关联
Git branch --set-upstream branch-name origin/branch-name
合并冲突,解决冲突。并在本地提交
推送 git push origin branch-name
查看远程库信息 git remote -v
在本地创建和远程分支对应的分支
Git checkout -b branch-name origin/branch-name
创建标签
新建一个标签 git tag <name> //git tag v1.0
指定标签信息 git tag -a <tagname> -m "baldsfadsaf"
用pgp签名标签 git tag -s <tagname> -m "dsafadsf"
查看所有标签 git tag
操作标签
推送一个本地标签 git push origin <tagname>
推送全部未推送的标签 git push origin --tags
删除本地一个标签 git tag -d <tagname>
删除一个远程标签 git push origin :refs/tags/<tagname>
忽略特殊文件
在要目下创建.gitignore,把忽略的文件名填进去
windows带的垃圾文件
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
.py[cod]
*.so
*.egg
*.egg-info
配置别名
Eg st 代表Status
Git config --global alias.st status
Eg lg的经典配置 会带有不同颜色
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
配置git服务器
Debian/ubuntu环境
安装git Sudo apt-get install git
创建git 用户,运行git服务
Sudo adduser git
创建证书登陆
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个
初始化git仓库
Sudo git init --bare sample.git
不让用户登陆到服务器去改工作区
Sudo chown -R git:git sample.git
禁用shell登陆
编辑/etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
远程克隆仓库
git clone git@server:/srv/sample.git
2.把该目录变成仓库 git init //发现当前目录下多了一个.git
3.新建文件readme.txt
4.添加文件到仓库 git add readme.txt //添加到暂存区
5.文件提交到仓库 git commit -m "wrote a readme file" //后面是日志,提交暂存区的内容
6.查看修改的内容 git diff readme.txt
7.查看历史记录 gig log (--pretty=oneline)//括号里面的表示只显示一行
8.回退到历史版本
8.1 git reset --hard HEAD^ [head表示当前,head^回到上一个,head~`100 退100个版本]
8.2 git reset --hard 3628164 【3628164 版本号,没有必要写全,写五个就行】//如果屏幕没有关掉
8.3 git reflog 【记录每一次命令,可以回退到任意版本】
[与svn区别] 三个回退到两个版本,再查看是2个,svn是四个
9.撤消修改
9.1 没有提交到暂存区 git checkout -- readme.txt
让这个文件回到最近一次git commit或git add时的状态
9.2 提交到暂存区,但没有commit
git reset HEAD readme.txt
10.删除文件
10.1 rm test.txt
11.添加远程库
11.1 关联远程库 git remote add origin git@server-name:path/repo-name.git
11.2 第一次推送master分支的所有内容 git push -u origin master
11.3 以后推送最新修改 git push origin master
12.从远程库中克隆
12.1 git clone git@github.com:michaelliao/gitskills.git
【Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。】
13 创建与合并分支
13.1 创建 dev分支,并切换到dev分支 git checkout -d dev
13.2查看当前分支 git branch //当前分支前面会标有*号
13.3 提交代码到分支,
git add readme.txt
Git commit -m "test"
13.4 切换回master git checkout master
13.5 把分支的成果merge到master
Git merge dev //合并指定分支到当前分支
13.6 删除dev分支 git branch -d dev
14.合并分支在删除分支后,不丢失信息
14.1 git merge --no-ff -m "merge with no-ff" dev
//--no-ff参数,表示禁用Fast forward
15.bug分支
15.1 把工作现场储藏起来,修完bug以后,再恢复
Git stash
15.2 eg在master分支上修复bug,切换到master分支,并创建bug分支
Git checkout master
Git checkout -b issue-101
15.3 修复完成后切换到master分支,合并,删除bug分支
Git checkout master
Git merge --no-ff -m "merge bug fix 101 " issuse-101
Git branch -d issue-101
15.4 回到dev分支干活
Git checkout dev
查看工作现场
Git stash list
恢复工作现场
1.git stash pop[恢复并删除stash]
2.git stash apply 恢复
git stash drop 删除
多人协作
推送自己的修改 git push origin branch-name
推送失败,表明远程分支比本地新,用git pull合并
提示no tracking information,表明本地分支与远程分支没有关联
Git branch --set-upstream branch-name origin/branch-name
合并冲突,解决冲突。并在本地提交
推送 git push origin branch-name
查看远程库信息 git remote -v
在本地创建和远程分支对应的分支
Git checkout -b branch-name origin/branch-name
创建标签
新建一个标签 git tag <name> //git tag v1.0
指定标签信息 git tag -a <tagname> -m "baldsfadsaf"
用pgp签名标签 git tag -s <tagname> -m "dsafadsf"
查看所有标签 git tag
操作标签
推送一个本地标签 git push origin <tagname>
推送全部未推送的标签 git push origin --tags
删除本地一个标签 git tag -d <tagname>
删除一个远程标签 git push origin :refs/tags/<tagname>
忽略特殊文件
在要目下创建.gitignore,把忽略的文件名填进去
windows带的垃圾文件
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
.py[cod]
*.so
*.egg
*.egg-info
配置别名
Eg st 代表Status
Git config --global alias.st status
Eg lg的经典配置 会带有不同颜色
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
配置git服务器
Debian/ubuntu环境
安装git Sudo apt-get install git
创建git 用户,运行git服务
Sudo adduser git
创建证书登陆
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个
初始化git仓库
Sudo git init --bare sample.git
不让用户登陆到服务器去改工作区
Sudo chown -R git:git sample.git
禁用shell登陆
编辑/etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
远程克隆仓库
git clone git@server:/srv/sample.git
相关文章推荐
- git 实用操作
- OS-->Git操作演练(项目实用命令)
- git实用操作学习记录
- Git的一些实用操作
- Git实用操作
- Git的一些实用操作
- Git实用操作命令
- Git 的基本操作、开发流程、实用技巧总结
- Git 的基本操作、开发流程、实用技巧总结(陈彦贝)
- git基本操作的一些实用笔记
- Git实用操作
- git命令实用操作
- SQL Server实用操作小技巧集合
- Sql Server实用操作小技巧集合
- Sql Server实用操作小技巧集合(转)
- Excel实用操作技巧
- OS操作实用技巧(一)
- 实用的数据库操作
- SQL Server实用操作小技巧集合
- Sql Server实用操作小技巧集合