Git版本控制和个人一些总结

Git命令

1. 注册Github账号,让Git 知道这台电脑做的修改要连结到哪一个使用者
git config --global user.name "<Your Name>"
git config --global user.email "< your@gmail.com >"
2. 建立本机repo,初始化git管理
mkdir Local_repo 
cd Local_repo
mkdir cuda_lstm_forward_v1
mkdir cuda_lstm_forward_v2

git init 
//列出专案资料夹下的档案和资料夹(-l参数为列出详细资料,-a为列出隐藏资料夹)
ls -la
3. 将repo add到cashed里
git add . //添加所有文件
[zhipeng @ cuda_repo]# git add cuda_lstm_forward_v1/
[zhipeng @ cuda_repo]# git add cuda_lstm_forward_v2/
[zhipeng @ cuda_repo]# git status
位于分支 master

尚无提交

要提交的变更:
  (使用 "git rm --cached <文件>..." 以取消暂存)

	新文件:   cuda_lstm_forward_v1/00_lstm.cu
	新文件:   cuda_lstm_forward_v1/BUILD.sh
	新文件:   cuda_lstm_forward_v1/cuda_lstm_forward.cc
	新文件:   cuda_lstm_forward_v2/00_lstm.cu
	新文件:   cuda_lstm_forward_v2/BUILD.sh
	新文件:   cuda_lstm_forward_v2/cuda_lstm_forward.cc
	新文件:   cuda_lstm_forward_v2/cuda_lstm_forward.so
	新文件:   cuda_lstm_forward_v2/lib00_lstm.so

未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

	.DS_Store
//未commit时使用,即可恢复到档案尚未加入暂存区
$ git rm --cached test.cc
  • Cashed的作用:需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改,即下一步
4. 提交和撤回
//比较现在档案和上次commit之间的差异,也就是说你做了哪些修改
$ git diff 
// -m为输入commit message,也就是说这个commit内做了哪些事情
$ git commit -m "LSTM的加速,v1通用v2定制"
//HEAD^的意思是上一个版本,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset --soft HEAD^

–mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

–soft
不删除工作空间改动代码,撤销commit,不撤销git add .

–hard
删除工作空间改动代码,撤销commit,撤销git add .

注意完成这个操作后,就恢复到了上一次的commit状态。

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend

总结:

  • HEAD指向的版本就是当前版本,因此,Git允许我们在已commit的版本的历史之间穿梭,使用命令git reset --hard commit_id
  • git checkout -- filename的作用是把filename文件在工作区的修改撤销到最近一次git add 或 git commit时的内容
  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
5. 将repository 做本机和远端的连结
<remote网址>+.git
git remote add origin https://github.com/MintLucas/Cuda_lstm_forward.git
//将本地端程式push到远端档案库<remote name>/<branch name>分支
$ git push -u origin master 

参数-u等同于--set-upstream,只要成功设定好upstream后,第二次以后要上传分支时,就只需要透过git push就可以了,事实上,$ git push -u origin master可以拆解成

$ git push origin master 
$ git checkout master 
$ git branch -u origin/master
  • 创建+切换分支:git checkout -b <name>或者git switch -c <name>
  • 合并某分支到当前分支:git merge <name>
  • 删除分支:git branch -d <name>
6. 文件删除
git rm test.txt
rm 'test.txt'
git commit -m "remove test.txt"

如果误删,使用git checkout -- <filename>可从远端恢复

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值