加入git版本控制
基本命令
1.创建项目 2.git init 3.git add [需要加入版本控制的文件] 4.git commit -m"提交信息" 5.关联远程仓库 git remote add origin https://git.coding.net/uxaw/surveyDemo.git 6. 首次推动并关联远分枝 git push -u origin master 拉取或者推送时如果提示分支找不到,需要到远程仓库合并一下分支. 我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来 7.拉取远程仓库:$ git pull [remoteName] [localBranchName] $ git pull (可省略origin master) 8. 以后推送 git push origin master 9.切换分支 git checkout -b mytagname tagname tagname:分支名称 mytagname:存到本地的重命名,建议和原分支名称一致 推送远程仓库:$ git push [remoteName] [localBranchName] $ git push origin master:matser 参考链接:http://blog.csdn.net/free_wind22/article/details/50967723 10.更改远程仓库链接: 如:修改远程仓库项目名将导致项目的访问 URL(包含 Git 仓库的 URL)将会改变,在此之前的 URL 地址将失效。 Git仓库地址修改命令: git remote set-url origin [NEW_URL]
忽略已跟踪文件
还没有加到版本控制中
(1)还没有Git add 在 .gitignore中添加 (2)已经git add 先git rm -r --cached 文件 在.gitignore中添加已经加到版本控制中
先git rm -r --cached 文件名 再在.gitignore中添加 最后gti commit -m提交.gitignore' git bash下创建gitignore的命令: touch .gitignore
Git相关命令
查看状态:
git status远程仓库版本覆盖本地版本:
$ git fetch –all //与远程同步 $ git reset --hard origin/master //将本地的状态回退到和远程的一样 git fetch 只是下载远程的库的内容,不做任何的合并git reset 把HEAD指向刚刚下载的最新的版本查看所关联的远程仓库
$ git remote -v创建.gitignore文件
git bash下创建gitignore的命令: touch .gitignore设置账户
设置用户名和邮箱: git config --global user.name "ux" git config --global user.email "ux@gmail.com" 查看用户名和邮箱 $ git config user.name $ git config user.email
Git里程碑
创建添加里程碑
创建本地里程碑: git tag v1.0 删除本地里程碑: git tag -d v1.0 共享推送里程碑到远成仓库: git push origin v1.0 删除远程仓库里程碑: git push origin :v1.0
Git第三方客户端SourceTree
sourcetree
git第三方桌面客户端: Source Tree https://www.sourcetreeapp.com/安装sourceTree时跳过账户登录
C:\Users\UX\AppData\Local\Atlassian\SourceTree下新建(或者替换)accounts.json (UX是我的计算机用户名,找到自己的对应即可,我的版本是2.0.19.1)accounts.json内容如下:
[ { "$id": "1", "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity", "IsDefault": false, "Authenticate": true, "HostInstance": { "$id": "2", "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount", "Host": { "$id": "3", "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount", "Id": "atlassian account" }, "BaseUrl": "https://id.atlassian.com/" }, "Credentials": { "$id": "4", "$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account", "Username": " ", "Email": null, "AvatarURL": null, "AuthenticationScheme": { "$type": "SourceTree.Model.BasicAuthAuthenticationScheme, SourceTree.Api.Account", "Value": "Username/Password", "Name": "Basic", "Description": "Password", "HeaderValuePrefix": "Basic", "UsernameIsRequired": true }, "Id": " ", "DisplayName": null } } ]或者到此链接复制:
多git服务使用配置(ssh key)
Mac下配置多个Git账户(ssh key方式)
查看用户名和邮箱
git config user.name
git config user.email
1.如果之前已经使用该命令进行配置,则先使用如下命令清除
git config --global --unset user.name
git config --global --unset user.email
2.设置全局账户
git config --global user.name "ux"
git config --global user.email "ux@gmail.com"
3.对每个账户生成一对密钥
1.首先进入保存秘钥的目录(mac下路径如下)
cd ~/.ssh
2.然后,根据账户邮箱生成秘钥。例如我在GitHub上的邮箱是ux@gmail.com,则命令为:
ssh-keygen -t rsa -C "ux@gmail.com"
3.输入完成后,会有如下提示
Generatingpublic/privatersa key pair.Enter fileinwhich to save the key (/Users/liugui/.ssh/id_rsa):
这里要求对秘钥进行命名,默认的文件名是id_rsa。为了方便区分,我这里命名为id_rsa_github
接下来的提示都直接进行回车,直到秘钥生成。通过ls命令,可以看到刚刚生成的密钥对id_rsa_github和id_rsa_github.pub。
其中id_rsa_github.pub是公钥
4.私钥添加到本地
ssh-add ~/.ssh/id_rsa_github // 将GitHub私钥添加到本地
5.对本地秘钥进行配置
由于添加了多个密钥文件,所以需要对这多个密钥进行管理。在.ssh目录下新建一个config文件:
touch config
config配置内容如下:
#############github###############
#网站的别名,随意取
Host github.com
#托管网站的域名
HostName github.com
#托管网站上的用户名
User uxawseny
#使用的密钥文件
IdentityFile ~/.ssh/is_rsa_github
##############公司git################
#网站的别名,随意取
Host git.cp.com
#托管网站的域名
HostName git.cp.com
#托管网站上的用户名
User myname
#使用的密钥文件
IdentityFile ~/.ssh/id_rsa_cp
这里的host name最好和git服务器的SSH下载方式上的
git@github.com:uxawseny/test.git
@符号后面的一直,这样每次clone时就默认不用手动更改了,
比如github的ssh key的host name,就命名为github.com
6.公钥添加到托管网站
将公钥id_rsa_github.pub中的内容复制到github
7.测试是否成功
这时候,可以测试一下配置是否成功,测试命令使用别名。例如,对于GitHub,本来应该使用的测试命令是:
ssh -T git@github.com
8.选择SSH协议的复制命令,如对于GitLab上代码库test,其复制命令为
git clone git@github.com:ux/test.git
9.添加其他git账户依次操作即可
10.做完这些后几个清除全局用户名和邮箱,否则不同仓库提交时的用户名和邮箱信息都是一样的。
git config --global --unset user.name
git config --global --unset user.email
用上述命令清除掉全局用户名和邮箱信息后,再在每个项目中设置用户名和邮箱信息(不使用全局参数)
git config --unset user.name
git config--unset user.email
或者在IDEA中提交时再填写用户名和邮箱,但是要记得取消勾选"作为全局设置"
- 参考文章
github项目fork之后实时同步原项目的更新
1.将fork到的项目git clone拉取到本地
2.进到拉取的project目录下,然后增加远程分支(fork的原始项目地址),名为 update_new(名字任意)到本地
git remote add update_new https://github.com/_original/_project.git
3.查看分支时候添加成功(会发现多了刚才添加的远程分支)
git remote -v
4.然后把远程原始分支 update_new 的代码拉到本地
git fetch update_new
5.合并对方远程原始分支 update_new 的代码
git merge update_new/master
6.最后把最新的代码推送到你的github上
git push origin master
参考文章
修改远程仓库地址
1.直接修改远程仓库地址【推荐】
git remote set-url origin url 修改完后,如果是master分支,第一次推送,可以直接:git push -u origin master 其他分支,在主分支推送后,修改完地址后,可以直接push2.删除本地远程仓库地址,然后添加新的仓库地址
git remote rm origin git remote add origin url3.修改配置文件
每个仓库在初始化时,都会有一个 .git 的隐藏目录,修改其中的 config 文件中的 url
Git分支重命名
1.本地分支重命名
1
git branch -m oldName newName
2.将重命名后的分支推送到远程
1
git push origin newName
3.删除远程的旧分支
1
git push --delete origin oldName
Git多仓库推送
推送到多个仓库
1
2
3
4
5
6
7
8
9
10git remote set-url --add origin https://xxxxx.git
命令提示:
usage: git remote set-url [--push] <name> <newurl> [<oldurl>]
or: git remote set-url --add <name> <newurl>
or: git remote set-url --delete <name> <url>
--push manipulate push URLs
--add add URL
--delete delete URLs
Git日志
根据日志进行检出操作等
1
2
3
41.查看提交记录
git reflog
2.检出到指定记录
git checkout b743fd3
参考地址: