您的位置:首页 > 其它

git常用命令

2016-08-28 19:48 337 查看




常用命令

 
#下载项目
$ git clone git://github.com/jquery/jquery.git

#添加项目到暂存区,点号表示添加所有
$ git add <filename>/.

#提交暂存区到仓库区
$ git commit -m [message]  #或者git commit -a

#推送项目到远程地址
$ git push

# 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force


基本命令

 
#创建并切换分支
$ git checkout -b branchName #每次开发新功能,都应该新建一个单独的分支

#添加当前目录的所有文件到暂存区
$ git add .

#用互动的模式来确认要加入的档案
$ git add -i:

#HEAD指针
HEAD指针总是指向分支的最新提交。每当你做出了一个提交,HEAD更新为最新提交。
HEAD树枝存储在.git/refs/heads/ 目录中。
cat .git/HEAD
ref: refs/heads/master

#新建分支
$ git branch [branchName]


查看命令

 
$ git show            # 显示某次提交的内容
$ git log --since="6 hours"  # 显示最近6小时提交
$ git log --before="2 days"  # 显示2天前提交
$ git log <file>      # 查看该文件每次提交记录


合并分支

 
git merge <branch>                  # 将branch分支合并到当前分支
Git分支操作: 创建分支后, 分支操作不会影响master分支, 但是master分支改变会影其它分支;

--列出分支 :$ git branch ;

--切换分支 :git checkout master

--提交分支 : git push origin branchName ;

--删除分支 : git branch -d branchName , 强制删除分支 git branch -D branchName
--合并分支 : git merge branchName ;


远程分支

 
$ git pull                # 抓取远程仓库所有分支更新并合并到本地
$ git push origin master # 将本地主分支推到远程主分支 master 可以换成你想要的任何分支

# 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
$ git push -u origin master

# 查看远程仓库:
$ git remote -v

# 下载远程仓库的所有变动
$ git fetch [remote]

Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。


别名注册

git
ci
 相当于
git
commit
,输入
git
st
相当于
git
status
。可以自己注册别名:

 
$sudo git config --system alias.st status
$sudo git config --system alias.ci commit
$sudo git config --system alias.co checkout
$sudo git config --system alias.br branch

在Git中,用两种方法将两个不同的
branch
合并。一种是通过
git
merge
,一种是通过git 
rebase


与 
git
merge
不同的是, 
git
rebase
不单单只是将两个不同的
branch
 合并起来,而是将某一支 
branch
 基于另一支 
branch
的内容合并起来





分支的开发过程中,要经常与主干保持同步。

 
$ git fetch origin
$ git rebase origin/master


合并commit

分支开发完成后,很可能有一堆
commit
message
,但是合并到主干的时候,往往希望只有一个(或最多两三个)
commit
message
,这样不仅清晰,

也容易管理。那么,怎样才能将多个
commit
合并呢?这就要用到 
git
rebase
命令。
git
rebase
是对
commit
history
的改写。
 
$ git rebase -i origin/master

git
rebase
命令的
i
参数表示互动(interactive),这时git会打开一个互动界面,进行下一步操作。

 
pick:正常选中
reword:选中,并且修改提交信息;
edit:选中,rebase时会暂停,允许你修改这个commit(参考这里)
squash:选中,会将当前commit与上一个commit合并
fixup:与squash相同,但不会保存当前commit的提交信息
exec:执行其他shell命令

合并
commit
后,就可以推送当前分支到远程仓库了。
 
$ git push --force origin myfeature

git
push
命令要加上
force
参数,因为
rebase
以后,分支历史改变了,跟远程分支不一定兼容,有可能要强行推送


当出现
no
changes added to commit
时如何正确使用git提交命令?

对于这个问题,最好的解决方法就是按如下步骤:

 
1.到根目录下:git add .  ;("."是必须要的)
2.git commit -m "some word"
3.git push -u origin master

上面命令将本地的
master
分支推送到
origin
主机,同时指定
origin
为默认主机,后面就可以不加任何参数使用
git
push
了。


当出现:
changes
not staged for commit

 
sudo rm -Rf .git #强制递归删除

git
push origin master
的意思就是将本地的
master
分支推送到origin主机的
master
分支。如果后者不存在,则会被新建。

git
push
是上传本地所有分支代码到远程对应的分支上。


当出现
nothing
to commit, working directory clean

这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪的新文件,否则 Git 会在这里列出来。最后,该命令还显示了当前所在的分支是 master,这是默认的分支名称,实际是可以修改的





 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: