码迷,mamicode.com
首页 > 其他好文 > 详细

常用Git命令及技巧总结

时间:2015-08-05 13:01:04      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:git

最近切换到git版本控制来维护代码,记录常用命令如下。另外,推荐git学习的书籍,《Pro Git》。另外,记录一些Git技巧。


1. 常用Git命令

初始化本地git仓库

git init


提交文件

git add *.c
git add README
git commit -m ‘initial project version”


克隆远程仓库到本地

git clone git://github.com/schacon/grit.git
git clone git://github.com/schacon/grit.git mygrit


查看git状态,未提交的文件等

git status


比较更改

git add benchmarks.rb
git diff
git diff --cached

本地提交代码

git commit

git commit -m "Story 182: Fix benchmarks for speed
git commit -a -m ‘added new benchmarks


本地删除代码

git rm grit.gemspec
git rm --cached readme.txt


本地移动文件

git mv file_from file_to

查看git仓库的提交记录
git log
git log –p -2
git log --stat
git log --pretty=oneline
git log --pretty=format:"%h - %an, %ar : %s
git log --pretty=format:"%h %s" --graph
git log --since=2.weeks
git log --pretty="%h:%s" --author=gitster --since="2008-10-01" --before="2008-11-01" --no-merges -- t/

追加提交代码,等同于一次提交
git commit --amend
git commit -m ‘initial commit‘
git add forgotten_file
git commit --amend
git reset HEAD benchmarks.rb
git checkout -- benchmarks.rb

建立远程仓库与本地仓库的联系
git clone git://github.com/schacon/ticgit.git
cd ticgit
git remote
git remote -v
git remote add pb git://github.com/paulboone/ticgit.git
git fetch pb


修改远程仓库branch

git push origin master
git remote show origin
git remote rename pb paul
git remote rm paul


Tag操作
git tag
git tag -l ‘v1.4.2.*‘
git tag -a v1.4 -m ‘my version 1.4‘
git show v1.4
git tag -s v1.5 -m ‘my signed 1.5 tag‘
git tag v1.4-lw
git tag -v v1.4.2.1
git tag -a v1.2 9fceb02
git push origin v1.5
git push origin --tags

Branch分支操作
git branch testing
git checkout testing
git checkout master

git checkout -b iss53
git checkout master
git merge hotfix
git branch -d hotfix
git checkout iss53
git checkout master
git merge iss53
git branch -d iss53


git branch -v
git branch --merged
git branch --no-merged

建立远程分支与本地分支的联系与操作
git fetch origin
git push origin serverfix
git merge origin/serverfix
git checkout -b serverfix origin/serverfix
git checkout --track origin/serverfix
git checkout -b sf origin/serverfix
git push origin :serverfix






2. 初始化远程git代码仓库

如果有一个空的远程git代码仓库,如何从本地提交代码来初始化远程git代码仓库。

You have an empty repository

To get started you will need to run these commands in your terminal.
New to Git? Learn the basic Git commands
Configure Git for the first time
#git config --global user.name "Yu Zhou (yzhou86)"
#git config --global user.email "yzhou86@gmail.com"
Working with your repository
I just want to clone this repository
If you want to simply clone this empty repository then run this command in your terminal.
#git clone ssh://git@githost:port/project.git
My code is ready to be pushed
If you already have code ready to be pushed to this repository then run this in your terminal.
#cd existing-project
#git init
#git add --all
#git commit -m "Initial Commit"
#git remote add origin ssh://git@githost:port/project.git
#git push origin master

My code is already tracked by Git
If your code is already tracked by Git then set this repository as your "origin" to push to.
#cd existing-project
#git remote set-url origin ssh://git@githost:port/project.git
#git push origin master








3. 重置git仓库并清空history

Completely reset?

Delete the .git directory locally.

Recreate the git repostory:

$ cd (project-directory)
$ git init
$ (add some files)
$ git add .
$ git commit -m ‘Initial commit‘

Push to remote server, overwriting. Remember you‘re going to mess everyone else up doing this … you better be the only client.

$ git remote add origin <url>

$ git push --force --set-upstream origin master#



4. 从SVN迁移到Git并保存提交记录

1. 创建usersmapping.txt技术分享,建立svn用户和git用户映射关系(左边为svn用户,右边为git用户)
user1 = user11<user11@test.com>
user2 =user21<user21@test.com>
user4 =user4<user4@test.com>
2. git命令clone svn仓库
# 这里只保留了trunk信息,如果你使用标准的trunk/branches/tags方式,请查看--stdlayout用法
# usersmapping.txt为用户映射关系
# 下载时间可能会比较长
git svn clone --no-metadata -A usersmapping.txt https://svnhost/csra csra
3. 如果用户没有找到,更新usersmapping.txt,然后再次fetch
cd csra
git svn fecth
4. 进入新的git仓库
cd csra/
5. 在添加一些必要文件,与`.git`目录平行
  • .gitignore技术分享 (一些不需要版本控制的文件),以下是示例文件
    # Eclipse project files
    .classpath
    .project
    .settings/
    # Intellij project files
    *.iml
    .idea/
    # Others
    target/
    logs/
  • README.md(简介信息)

添加文件完成后,commit到本地仓库

cd csra
# 查看变更信息
git status
 
# 添加文件
git add -A
git commit -m "init project"
6. 删除老的本地远程仓库,push 到新的远程仓库
cd csra
# 查看远程仓库地址
git remote -v
# 删除老的本地远程仓库地址
git remote rm origin
# 添加新的远程仓库
git remote add origin ssh://gituser@githost:port/csra.git
# 下载远程仓库并与本地仓库合并
git pull origin master
# push本地master分支到远程仓库,这里请保证已经配置过ssh key认证
git push origin master


5. Git本地配置

主要是配置你的用户名和邮箱。

git config --global user.name "Yu Zhou (yzhou86)"
git config --global user.email "yzhou86@gmail.com"

6. 配置SSH key到Git远程仓库

在你需要下载、提交和操作远程仓库的服务器或pc上,运行如下命令:

#ssh-keygen

一路回车。会在你的用户主目录下生成ssh key。

#ls ~/.ssh

其中一个文件是公钥。复制他的内容。

#cat ~/.ssh/id_rsa.pub

将公钥内容拷贝到git远程仓库admin页面,你的account页面的ssh key中。这样,此台服务器就可以以你的名义连接到git远程仓库。

版权声明:本文为博主原创文章,未经博主允许不得转载。

常用Git命令及技巧总结

标签:git

原文地址:http://blog.csdn.net/yzhou86/article/details/47293205

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!