git 常用操作

git
XP系统安装 Git-2.6.1-32-bit.exe
WIN7 安装 Git-1.9.4-preview20140929.exe



//git 安装
$ git config --global user.name "XXXXX"
代码提交时的用户名,与GITLAB注册用户名建议保持一致
$ git config --global user.email [email protected]
代码提交时的用户邮箱地址,与GITLAB注册信息建议保持一致

$ git config --global core.autocrlf false
代码提交和检出时不做CRLF(Windows回车符)和LF(Linux回车符)的转换,代码编写时建议保持Linux文件格式。


$ ssh-keygen
生成ssh key,生成两个文件id_rsa,id_rsa.pub分别为私钥和公钥,一般位于C:\Documents and Settings对应的自己登陆用户名文件夹下的.ssh目录中,
比如C:\Documents and Settings\Administrator\.ssh。


关联远程库
git remote add origin [email protected]:xxxx/my-test-project.git
本地库的所有内容推送到远程库
第一次推送master分支时,加上了-u参数,
Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
git push -u origin master

克隆远程库
git clone [email protected]:xxxx/my-test-project.git

git clone ssh://[email protected]:29418/code


查看远程库
$ git remote
$ git remote -v

推送分支 注意是将本地的master分支推送到远程的 origin的master分支
$ git push <远程主机名> <本地分支名>:<远程分支名>
$ git push origin master
$ git push origin dev


创建分支
$ git checkout -b dev


$ git branch dev
$ git checkout dev

查看分支
$ git branch


//合并分支 注意这里是两边,先checkout master,然后将dev合并到master分支
$ git checkout master
$ git merge dev

表示禁用Fast forward:
$ git merge --no-ff -m "merge with no-ff" yu


//删除分支
$ git branch -d dev


//建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name;
$ git branch --set-upstream dev origin/dev



新增文件,提交修改
$ git add readme.txt
$ git commit -m "branch test"

//将当期目录所有修改和新增的文件,目录提交到暂存区
git add .

//git add -A: [<path>]表示把<path>中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。省略<path>表示.,即当前目录。
git add -A


//撤销add
git reset head .


//查看状态
$ git status


//git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂
$ git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin master


//fetch 与  pull等价
git fetch origin master
git log -p master..origin/master
git merge origin/master

代码修改步骤
创建分支
$ git checkout -b yu

//
git checkout yu

git add .
git commit -m "add by yhj"

git checkout master
git merge --no-ff -m "merge with no-ff by yhj" yu


git pull origin master
git push origin master

git checkout yu


//将master分支的内容合并到yu分支
git checkout yu
git merge --no-ff -m "merge to yu with no-ff by yhj" master

//
git checkout master
git pull origin master
git checkout yu
git merge --no-ff -m "merge to yu with no-ff by yhj" master



//在本机过滤文件
git config --global core.excludesfile F:/.gitignoreglobal

猜你喜欢

转载自navyu.iteye.com/blog/2348893