Git常用命令合集

本文从克隆一个新项目开始举例,首先要配置SSH密钥

1.配置SSH Key
一、同一台电脑生成码云和github的SSH私钥

1).打开git bash,输入以下命令

// -f 后面为ssh key文件的别名
ssh-keygen -t rsa -C 'email'  -f  'gitee_id_rsa' // email为你注册码云的邮件地址
ssh-keygen -t rsa -C 'email'  -f  'github_id_rsa' // email为你注册github的邮件地址

2).连续按三次enter,生成各自的ssh key,找到路径中的文件或执行下面命令,并复制内容

cat ~/.ssh/gitee_id_rsa.pub

3).分别登录码云和github,打开设置中的ssh管理界面,把第二步中复制的内容添加到公钥栏


add.png

4).至关重要的一步:创建config文件解决ssh冲突
在.ssh文件夹下执行命令:vi config 进入编辑模式,加入以下代码

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa

#github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

编辑完成后按ESC退回命令模式,然后输入:w保存

5).测试是否连接成功

ssh -T git@gitee.com // 提示后输入yes
ssh -T git@github.com 
二、同一台电脑生成github不同账号的SSH私钥

1).打开git bash,输入以下命令

// -f 后面为ssh key文件的别名,email为你注册github的邮件地址
ssh-keygen -t rsa -C 'email'  -f  'git_carrie_id_rsa' 
ssh-keygen -t rsa -C 'email'  -f  'git_carrie_xin_id_rsa' 

2).连续按三次enter,生成各自的ssh key,找到路径中的文件或执行下面命令,并复制内容

cat ~/.ssh/git_carrie_xin_id_rsa.pub

3).用不同账号登录GitHub,在setting页把ssh key添加上去


githubSSH.png

4).更改ssh config文件,在.ssh文件夹下执行命令:vi config 进入编辑模式,加入以下代码

#carrie account
Host github.com-carrie 
    HostName github.com
    User git
    IdentityFile ~/.ssh/git_carrie_id_rsa

#carrie-xin account
Host github.com-carrie-xin
    HostName github.com
    User git
    IdentityFile ~/.ssh/git_carrie_xin_id_rsa

5).建立连接后,克隆项目到本地,然后分别cd 到项目文件夹,更改git配置
eg:

// cd workspace/projectname
$ git config user.name "carrie"
$ git config user.email "project one@gmail.com" 

$ git config user.name "carrie-xin"
$ git config user.email "project two@gmail.com" 

然后就可以正常pull push代码了

2.克隆项目至本地

gitBash或cmd切换至存放项目的路径,然后执行 git clone ‘url’
或者直接下载压缩包到本地。

3.提交代码

1).普通提交
git add .
git commit -m"提交说明"
git pull origin 分支名
git push origin 分支名

2).合并分支代码并提交
1.执行普通提交的步骤;
2.git checkou 分支名, 切换至需要合并代码的分支;
3.git merge --no-ff 分支名,合并分支;
4.执行普通提交的步骤,提交合并后的分支代码。

4.分支管理

git branch: 查看本地分支
git branch -a:查看远程分支
git branch 分支名:创建分支
git checkout 分支名:切换到目标分支
git branch -D 分支名:删除本地分支
git push origin --delete 分支名:删除远程分支
git merge --no-ff 分支名:合并分支到当前分支

5.暂存代码区

适用场景:开发新功能到一半突然要改个bug,但是新功能还没完成不想提交,就可以用git stash缓存起来
1.git status:查看当前修改;
2.git stash: 暂存当前修改 也可用 git stash save "message" 加版本记录;
3.git stash pop: 将缓存堆栈中的第一个stash应用到当前工作区;
4.git stash list: 查看当前所有的stash目录;
5.git stash apply: 将所有的stash应用到当前工作区;
6.git stash drop stash@{0}: 删除指定的stash;
7.git stash clear: 删除所有的stash;
8.git stash branch name: 从暂存区新建分支;

6.分布式合作开发

当项目成员较多且特性分支较多时,很容易造成冲突,为了减少这种冲突,可以采用分布式开发。
首先,把公司仓库下的项目fork到个人仓库,此时更改提交不会对公司仓库项目有影响


fork.png

1.git remote -v 查看当前远程仓库信息
2.git remote add upstream <url> 添加一个名为upstream的远程仓库关联
3.git fetch upstream 抓取远程仓库upstream中的代码
4.git checkout dev 切换到未更新代码的分支
5.git merge upstream/dev 远程仓库upstream中dev分支的代码与本地dev分支代码合并
6.git push origin dev 推送本地dev分支代码到远程仓库origin
7.提交审查代码


check.png
7.tag版本控制

养成良好的代码管理习惯,每次往master合代码时,最好给当前提交记录打上标签
给某次的提交打标签:
git add .
git comit -m""
git tag v1.0 // 创建一个名为v1.0的tag
git tag -a v1.0 -m"标签的描述" // 创建一段带描述的tag
git push origin master
git push origin v1.0 // 将tag 同步到远程服务器
git show v1.0 // 查看tag的详细信息如commit等

git tag // 查看所有的tag
git checkout v1.0 // 切换到某个tag

给指定的commit加tag:
git log 获取commit 编号
git tag -a v2.0 bc223557367f406a7d40ef68c5fcdcea6db6b0a1 -m"指定的版本tag"

删除tag:
git tag -d v1.0 // 本地删除
git push origin :refs/tags/v1.0 // 远端删除

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355