git分支管理与代码同步 — cmd line
2020-04-21 本文已影响0人
波罗的海de夏天
一、.gitignore(过滤文件)
常用的忽略文件/文件夹命令:
-
#
表示一行注释;
-
*.a
表示要忽略所有以a结尾的文件;
-
!bb.a
表示bb.a文件不忽略;
-
/todo_dir
表示项目根目录下的todo_dir文件,不包含mydir/todo_dir;
-
build/
表示build文件夹下的所有文件,过滤掉整个build文件夹;
-
doc/*.txt
表示忽略doc文件夹下的txt文件,不包含子文件夹下的txt文件(如:doc/docker/aaa.txt);
-
**/foo
忽略匹配路径条件的文件,如 /foo、aa/foo、 aa/bb/foo等;
-
a/**/b
忽略匹配路径条件的文件,如 a/b、a/c/b、a/c/d/b等;
规则说明:
-
/
表示目录;
-
*
通配多个字符;
-
?
通配单个字符;
-
[]
包含单个字符的通配列表;
-
!
表示不忽略匹配到的文件;
-
**
匹配多级目录;
备注:
.gitignore配置文件按行从上到下进行规则匹配;
参考文档:
https://www.jianshu.com/p/74bd0ceb6182
示例:
.idea
*.log
*.zip
*.DS_Store
test/tmp/*
二、配置SSH
- 设置或修改用户名及邮箱:
git config --global user.name 'xxxxx' // username
git config --global user.email 'xxxx@xxx.com' // email
- SSH配置
- 打开git bash,使用
cd ~.ssh
,查看是否已配置SSH; - 确认是否生成过SSH-key
id_rsa(私钥文件)
,id_rsa.pub(公钥文件)
; - 查看公钥的命令:
cat ~/.ssh/id_rsa.pub
; - SSH-key文件可以直接使用,也可以删除后重新生成;
- 生成SSH-key钥命令:
ssh-keygen -t rsa -C 'gaox0802@126.com'
;
- 将SSH-key配置到github/gitlab中。
三、Create Registory
- github/gitlab上创建远程仓库;
- 远程仓库同步到本地
git clone git@github.com:username/test.git
- 也可以创建本地仓库,再推到远程;
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:username/test.git
git push -u origin master
- 本地仓库无法推到远程上的问题:
git remote rm origin
git remote add origin git@github.com:username/test.git
git push -u origin master
-
ssh: connect to host github.com port 22: Operation timed out
问题:
- 端口443测试:
ssh -T -p 443 git@ssh.github.com
- 创建配置文件:
/Users/hope/.ssh/config
,代码如下:
Host github.com /*服务器地址为github地址*/
User "XXX@XX.com" /*github上的注册邮箱为用户账号*/
Hostname ssh.github.com /*服务器地址为github地址*/
PreferredAuthentications publickey /*采用公匙*/
IdentityFile ~/.ssh/id_rsa /*公匙文件路径*/
Port 443 /*修改端口为443*/
四、分支管理cmd
-
查看分支:
# 查看本地
git branch
# 查看本地和远程
git branch -a
-
新建分支:
git checkout -b branch-1 // 创建并切换
-
检出远程分支:
git checkout -b 本地分支名 origin/远程分支名
-
分支切换:
git checkout branch-1 // 单纯切换
-
分支合并:
git merge branch-2 // branch-2合并至当前所在分支
-
分支提交:
git push --set-upstream origin branch-1
orgit push -u origin branch-1
- 分支删除:
# 删除本地分支
git branch -d branch-4
# 删除远程分支
git push --delete branch-4
五、同步代码cmd
# 查看状态
git status
# 暂存
git add .
# 提交本地仓库
git commit -m 'code info'
# 推送远程
git push
# 拉取本地仓库
git fetch
# 拉取本地仓库并merge到本地。相当于:git fetch + git merge
git pull
六、git日志
# 提交日志(操作记录)
git log
git log -p -2 // 最近两次提交记录
git log --stat
git log --pretty=oneline
git reflog // 提交记录
# 回退
git reset --hard HEAD // 回退到上一版
git reset --hard HEAD^n // 回退到上n版
git reset --hard HEAD^^^^ // 回退到上X版
git reset --hard commit_id // 回退到指定版本
七、文件暂存
# 文件暂存
git stash // 存
git stash list // 暂存区
git stash pop // 取
git stash clear // 删
git stash apply stash@{1} // 取某一条
八、创建标记 tag
# 添加 tag
git tag -a V1 -m 'my version 1'
# 提交远程
git push origin V1
# 查看 tag
git tag
git tag -l 'v*' // 正则
git show v1
# 删除 tag
git tag -d v1 // 本地
git push origin :refs/tags/V1 // 远程
九、比较
git diff
# 工作目录与本地仓库
git diff HEAD test_file
# 通过log_id比较
git diff commit_id_1 commit_id_2
十、图形化工具
- Source Tree
- Pycharm git
- Xcode git
十一、tig
-- git
命令行可视化
安装: brew install tig
参考文档:https://www.jianshu.com/p/d9f60c0abbf7
十二、配置终端工具
iTerm2 + Oh My Zsh
-- 打造舒适终端体验;
参考文档:https://www.jianshu.com/p/9c3439cc3bdb